home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 27.zip / BS1 part 27 / ImageMaster_d4.adf / ia.lzh / i_addendum
Text File  |  1993-03-17  |  421KB  |  11,057 lines

  1.                              Table Of Contents                             
  2.                              -----------------                             
  3. Page   2 -- userload - arexx (9.50)
  4. Page   2 -- simpload - arexx (9.50)
  5. Page   2 -- forcewbfront - arexx (9.50)
  6. Page   2 -- forcefront - arexx (9.50)
  7. Page   2 -- ehlp - arexx (9.50)
  8. Page   3 -- New Color Separation module (9.50)
  9. Page   3 -- Swap Primary and Secondary keystroke (9.50)
  10. Page   3 -- Perspective Compose Operation (9.50)
  11. Page   4 -- perspect - arexx (9.50)
  12. Page   4 -- Add/Subtract a constant (9.50)
  13. Page   4 -- Multiply/Divide a constant (9.50)
  14. Page   4 -- Multiply by Secondary (9.50)
  15. Page   4 -- Divide by Secondary (9.50)
  16. Page   4 -- Logarithm (9.50)
  17. Page   5 -- Raise to Power (9.50)
  18. Page   5 -- 1-D Profile (9.50)
  19. Page   5 -- 1-D Spectrum Analysis (9.50)
  20. Page   5 -- Variance Conversion (9.50)
  21. Page   5 -- Scientific Ops - General Information (9.50)
  22. Page   6 -- Sharpen III (9.50)
  23. Page   6 -- Intelligent Loader (9.50)
  24. Page   8 -- plugin extended structure - arexx (9.50+)
  25. Page   8 -- AGA Palette Display (9.50)
  26. Page   9 -- Exact Aspect (9.50)
  27. Page   9 -- Set Display Aspect (9.50)
  28. Page  10 -- pcontrol - arexx (9.50)
  29. Page  10 -- pcontask - arexx (9.50)
  30. Page  11 -- Rendering - Creating Amiga IFF images (9.50)
  31. Page  19 -- New morphing documentation (9.23)
  32. Page  19 -- New AGA modes supported (9.21)
  33. Page  19 -- New Render Panel (9.21)
  34. Page  19 -- Dither control in Display Panel (9.21)
  35. Page  20 -- Distance Calculator
  36. Page  20 -- Pad Canvas
  37. Page  20 -- Virtual Memory accommodation
  38. Page  21 -- Custom Area Shape Selections
  39. Page  22 -- ANIM OP-5 Generation from Sequencer
  40. Page  23 -- Automatic Custom Display Updating
  41. Page  24 -- Roll Image Geometric Process
  42. Page  25 -- Compose and Process panels reorganized
  43. Page  26 -- Zoom Clip
  44. Page  27 -- Image masks
  45. Page  28 -- Shadows in Compositing
  46. Page  29 -- FilmStrips
  47. Page  30 -- Sequence Processing
  48. Page  35 -- Morphing
  49. Page  36 -- A Tour of single-image morphing:
  50. Page  41 -- A Tour of dual-image morphing:
  51. Page  44 -- Single Image Morphing Tools Reference
  52. Page  44 -- Quick Reference to Warp Morphing
  53. Page  47 -- Detailed Warp Morphing Reference
  54. Page  62 -- Quick Reference to Dual-Image Morphing
  55. Page  65 -- Detailed Dual-Image Morphing Reference
  56. Page  81 -- Some Morphing Hints
  57.  
  58.  
  59. Page  83 -- List Requester (ARexx-based capability)
  60. Page  83 -- Load Image as Secondary
  61. Page  83 -- Load Image as Blend
  62. Page  83 -- Load Image as Brush
  63. Page  84 -- Co-ordinates
  64. Page  84 -- Grid
  65. Page  85 -- Adding Noise
  66. Page  85 -- Clip to exact size (F/x)
  67. Page  85 -- X-Specs Over-Under
  68. Page  85 -- X-Specs Interleave
  69. Page  85 -- X-Specs Separate
  70. Page  86 -- F/x User Transforms
  71. Page  86 -- Stretch (Scale, Zoom)
  72. Page  86 -- Map to Range
  73. Page  87 -- Color Balance
  74. Page  87 -- Numeric Area Selection
  75. Page  88 -- Black Balance
  76. Page  88 -- Force Dynamic
  77. Page  88 -- X-Specs Conversion
  78. Page  89 -- Absolute Resample - no anti-aliasing
  79. Page  89 -- Merge with Render from Range
  80. Page  90 -- Additional Render Controls and Capabilties
  81. Page  91 -- Compose with Logical OR
  82. Page  91 -- Compose with Logical AND
  83. Page  91 -- Multiple Blend Technique Application
  84. Page  91 -- Smooth Edge Blending as a Percentage
  85. Page  91 -- Masks
  86. Page  92 -- Color Separations
  87. Page  94 -- CMYK and RGB Recombination
  88. Page  95 -- Genlocking
  89. Page  96 -- DCTV
  90. Page  96 -- Brushes
  91. Page  96 -- Color Definition
  92. Page  97 -- Palette Mapping
  93. Page  97 -- Paint Settings To Disk
  94. Page  98 -- New fill modes
  95. Page  99 -- Dual Range Fills
  96. Page 101 -- DPI operations
  97. Page 101 -- Initialize buffer to Color
  98. Page 101 -- Setup Panel
  99. Page 101 -- Information Panel
  100. Page 101 -- Display Panel
  101. Page 102 -- Dither Off
  102. Page 102 -- Public Interface Modules
  103. Page 116 -- ARexx Port Names
  104. Page 116 -- Render command changed
  105. Page 116 -- Filerequest command changed
  106. Page 116 -- Newbuf command (changed)
  107. Page 116 -- Firecracker-specific manipulation (new commands)
  108. Page 117 -- Finding the mouse location from ARexx (new command)
  109. Page 117 -- coords <show> <top> (new command)
  110. Page 117 -- grid <on> <xgrid> <ygrid> <xoff> <yoff> (new command)
  111. Page 117 -- newasprimary (new command)
  112. Page 117 -- newbuf (changed)
  113. Page 117 -- fromdigiview (changed)
  114.  
  115.  
  116. Page 118 -- dome (changed)
  117. Page 118 -- caric (changed)
  118. Page 118 -- askrgb (added)
  119. Page 119 -- imagemaspect (new command)
  120. Page 119 -- loadimask (new command)
  121. Page 119 -- saveimask (new command)
  122. Page 119 -- loadmask (new command)
  123. Page 119 -- savemask (new command)
  124. Page 120 -- backuptoundo (new command)
  125. Page 120 -- coords <show> [showattop] (new command)
  126. Page 120 -- grid <on> [xgrid] [ygrid] [xoffs] [yoffs] (new command)
  127. Page 120 -- autoactivate (new command)
  128. Page 121 -- setpalette (new command)
  129. Page 121 -- newtargetted (new command)
  130. Page 122 -- DISPLAYMODE (new command)
  131. Page 122 -- pal (new command)
  132. Page 123 -- autoprimary <mode> (new command)
  133. Page 123 -- newbrush <bufferNumber> (new command)
  134. Page 123 -- newblend <bufferNumber> (new command)
  135. Page 124 -- render (changed) [obsolete - see AmigaRender command]
  136. Page 125 -- CANCEL command (new command)
  137. Page 126 -- AmigaRender command (new command)
  138. Page 127 -- actpri (new command)
  139. Page 127 -- addasr (new command)
  140. Page 127 -- addasg (new command)
  141. Page 127 -- addasb (new command)
  142. Page 127 -- addasc (new command)
  143. Page 127 -- addasm (new command)
  144. Page 128 -- addasy (new command)
  145. Page 128 -- addask (new command)
  146. Page 128 -- allowcancel (new command)
  147. Page 128 -- emboss (new command)
  148. Page 128 -- punch (new command)
  149. Page 128 -- loadasprimary (new command)
  150. Page 128 -- loadassecondary (new command)
  151. Page 128 -- loadasbrush (new command)
  152. Page 128 -- loadasblend (new command)
  153. Page 129 -- newcurrent (new command)
  154. Page 129 -- rectarea (new command)
  155. Page 129 -- tofront (new command)
  156. Page 129 -- imtofront (newcommand)
  157. Page 129 -- iptofront (newcommand)
  158. Page 129 -- wbtofront (newcommand)
  159. Page 129 -- version (new command)
  160. Page 129 -- whiten (new command)
  161. Page 130 -- Public Interface
  162. Page 130 -- Installing the PI Modules
  163. Page 130 -- Image Locking
  164. Page 131 -- Unlock Buffer (in Buffer Panel)
  165. Page 133 -- PI Module Code Examples
  166. Page 135 -- Changes List (from v7.00 onwards)
  167.  
  168.  
  169.                     Information Updated March 17th, 1992
  170.  
  171.        ==============================================================
  172.                            I M A G E M A S T E R
  173.                                for the Amiga
  174.                   (Also applies to F/c and HAM-E versions)
  175.        ==============================================================
  176.  
  177.            Information current to version 9.50 of these programs
  178.  
  179.                        Document Author: Ben Williams
  180.            Software: Barry Chalmers, Ben Williams, Pete Patterson
  181.  
  182.                 +-----------------NOTICE------------------+
  183.                 | This information is copyright 1991-1993 |
  184.                 | Black Belt Systems, ALL RIGHTS RESERVED |
  185.                 | under the Pan-American Conventions.     |
  186.                 +-----------------------------------------+
  187.  
  188.     The latest versions of our image processing software have
  189.     many additional functions which are not described in the manual. This
  190.     document describes those capabilities until a new manual is released.
  191.  
  192.     For developers, please note that we have included much more detailed
  193.     information on the Public Interface; and that the release disk is able
  194.     to provide you with a directory containing a complete example of how
  195.     to write a PI Module using SAS C. Unlike competing systems from less
  196.     developer-friendly companies, we give you everything you need to
  197.     develop add-on modules for Imagemaster.
  198.  
  199.     Until we do formally reprint the manual, additional documentation will be
  200.     provided in this on-disk format, ready for printing on your own printer.
  201.     We had originally planned to print continual addendums, but there is no
  202.     way we can keep up with the fast pace of development of this program
  203.     using something as conventional as paper.
  204.  
  205.     We will eventually reprint the image processor manual with this new
  206.     information included. Assuming you are a registered user, you will be
  207.     notified at that time what you'll need to do to obtain the new paper
  208.     manual. Make certain you register!
  209.  
  210.     This on-disk documentation has been carefully formatted to be printable
  211.     on virtually any printer providing it has at least 60 lines per page, is
  212.     able to print at least 80 columns of text, and understands the industry
  213.     standard "$0C" (decimal 12) character as a "form feed". There are no
  214.     other control characters of any type in this file.
  215.  
  216.     For a quick update on what changes have been made to the image processor,
  217.     see the changes list at the end of this document, just before the index.
  218.     The latest changes are at the end of the list. The features described
  219.     there will be at the beginning of the main descriptions, except if there
  220.     was already a section on that subject. Remember to use the comprehensive
  221.     index to help you find what you're looking for, both here and in the main
  222.     manual!
  223.  
  224.  
  225.  
  226.  
  227.  
  228.                                     -1-                                    
  229. userload - arexx (9.50)
  230. =======================
  231.  <> = required [] = optional
  232. usage;  userload <filename>
  233.  
  234. This command provides the ARexx user with a simple command to load a file and
  235. have it automatically use the various new buffer options through the standard
  236. user interface - without any ARexx programming.
  237.  
  238. simpload - arexx (9.50)
  239. =======================
  240.  <> = required [] = optional
  241. usage;  userload "filename"
  242.  
  243. This command provides the ARexx user with a command that will load an image
  244. to a new, unspecified buffer - no selection of Primary, etc, is done.
  245.  
  246. forcewbfront - arexx (9.50)
  247. ===========================
  248.  <> = required [] = optional
  249. usage;  forcewbfront
  250.  
  251. Brings the WB to front immediately, regardless of the state of the auto-
  252. activate setting in Imagemaster.
  253.  
  254. forcefront - arexx (9.50)
  255. =========================
  256.  <> = required [] = optional
  257. usage; forcefront
  258.  
  259. Brings Imagemaster to the front, regardless of the state of the aauto-
  260. activate setting in Imagemaster.
  261.  
  262. ehlp - arexx (9.50)
  263. ===================
  264.  <> = required [] = optional
  265.  
  266. usage;  ehlp <errornumber>
  267.  
  268. example, after any Imagemaster ARexx command:
  269.             if rc ~= 0 then do
  270.                options results;
  271.                ehlp rc;
  272.                options;
  273.                end;
  274.  
  275. This command returns a text string describing an Imagemaster error number.
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.                                     -2-                                    
  288. New Color Separation module (9.50)
  289. ==================================
  290. The following changes have been made to how color separations are created:
  291.  
  292.         * GCR   is the amount of grey subtracted from CMY and replaced
  293.                 with black.  Gadget must show 0 to 100 %.
  294.   
  295.         * UCR   is the amount of color removed from heavily inked areas
  296.                 (where ink coverage approaches 300 %).
  297.                 The gadget represents the percentage 0 to 100% that this 
  298.                 removed color will be replaced by black.
  299.   
  300.         * UCR_Threshold
  301.                 The maximum ink coverage before UCR kicks in.
  302.                 The gadget must show 200 % to 400 %.
  303.   
  304.         * Pure Grey areas must translate to black ink only.
  305.   
  306. Swap Primary and Secondary keystroke (9.50)
  307. ==========================================
  308.  
  309. The S key will now immediately swap the primary and secondary buffers.
  310.  
  311. Perspective Compose Operation (9.50)
  312. ====================================
  313. Perspective placement will place the secondary image onto the
  314.     primary using a 3-dimensional perspective projection.
  315.     There are nine numeric controls:
  316.  
  317.            X Rotn - rotation about the X axis (pitch)   (in degrees)
  318.            Y Rotn - rotation about the Y axis (yaw)
  319.            Z Rotn - rotation about the Z axis (roll)
  320.  
  321.            X Translate - movement left and right
  322.            Y Translate - movement up and down
  323.            Z Translate - depth movement into the screen
  324.  
  325.            X Scale - horizontal stretching
  326.            Y Scale - vertical stretching
  327.            Z Scale - depth stretching
  328.  
  329. Each of these controls has a Grab button so that the control can be moved on
  330. screen using the mouse.
  331.  
  332. X Scale and Y Scale together constitute the equivalent to 'zoom' on each
  333. axis. They are independant to allow aspect ratio distortions.
  334.  
  335. Z Translate brings the image closer to the 'camera' therefore making it
  336. bigger on screen.  Very close objects will show the distortion nomally seen
  337. through a wide angle lens.
  338.  
  339. Z Scale (depth stretching) affects the degree of the perspective distortion.
  340. Setting Z Scale = 0 will produce orthographic projections.
  341.  
  342.  
  343.  
  344.  
  345.  
  346.                                     -3-                                    
  347. Anti-alias button defaults to on.
  348.  
  349. Each of these controls has full floating point precision.
  350.  
  351. It is recommended that the Imagemaster Default 'Lace Panel' be set for
  352. adjusting the perspective position.
  353.  
  354. perspect - arexx (9.50)
  355. =======================
  356.  
  357. usage;  'perspect [Xrotn=N.n]  [Yrotn=N.n]  [Zrotn=N.n]
  358.                   [Xtrans=N.n] [Ytrans=N.n] [Ztrans=N.n]
  359.                   [Xscale=N.n] [Yscale=N.n] [Zscale=N.n]';
  360.   
  361. example of use:
  362.  
  363.       /* ARexx Perspective tumble */
  364.       address('IM_Port');
  365.       'perspect Xr=330 Yr=0 Zr=0 Xt=405 Yt=-240 Zt=656 Xs=300 Ys=300 Zs=100';
  366.       do i=1 to 10
  367.           YR=i*36;
  368.           XT=405-i*80;
  369.           YT=-240+i*36;
  370.           'perspect Yr='||YR||' Xt='||XT||' Yt='||YT;
  371.           end;
  372.       'finish';
  373.  
  374. ARexx support for perpective compose operation.
  375.  
  376. Add/Subtract a constant (9.50)
  377. ==============================
  378. Simply adds or subtracts a constant value from each of red,green or blue.
  379.  
  380. Multiply/Divide a constant (9.50)
  381. =================================
  382.  
  383. Simply multiplies or divides the r,g,b levels by a constant.  This is
  384. effectively a brightness operation.
  385.  
  386. Multiply by Secondary (9.50)
  387. ============================
  388.  
  389. Multiplies the primary image brightness values by the secondary.
  390.  
  391. Divide by Secondary (9.50)
  392. ==========================
  393.  
  394. Divides the primary by the secondary.
  395.  
  396. Logarithm (9.50)
  397. ================
  398.  
  399. Takes the log base N of the primary.
  400.  
  401.  
  402.  
  403.  
  404.  
  405.                                     -4-                                    
  406. Raise to Power (9.50)
  407. =====================
  408.  
  409. Raises primary image to a constant power.
  410.  
  411. 1-D Profile (9.50)
  412. ==================
  413.  
  414. Draws a graph of the brightness levels over a line. 1-D Profile graphs the
  415. Red, Green, Blue and average (as white) brightness levels along the graph.
  416. The profile is sampled at one pixel intervals.
  417.  
  418.  
  419. 1-D Spectrum Analysis (9.50)
  420. ============================
  421.  
  422. Does a spectrum analysis (power spectrum) over a line. 1-D Spectrum Analysis
  423. does an FFT of the profile sampled at intervals of 1/1024 of the line length
  424. ( 1024 samples altogether).  Red shows the real (in phase) and blue the
  425. imaginary (out of phase) components.  The vertical minimum and maximum levels
  426. are shown above the graph.
  427.  
  428.  
  429. Variance Conversion (9.50)
  430. ==========================
  431.  
  432. Changes the primary image to a map of the variance between each pixel and its
  433. neighbors.  This is often a good measure of high frequency noise.
  434.  
  435. Scientific Ops - General Information (9.50)
  436. ===========================================
  437.  
  438.      For each of these functions, the Red, Green, and Blue channels are
  439.      treated as Decimal values ranging from 0.000 to 1.000
  440.      with a precision of +/- 0.0019 .
  441.   
  442.      Each function uses a constant (N) for each channel (x).
  443.      The Monochrome button forces the constant to be the same for each
  444.      of red, green and blue channels.
  445.   
  446.      Note, that the Inverse button causes the inverse functions to be used
  447.      as follows:
  448.                  NORMAL                            INVERSE
  449.                  --------------                    ---------------
  450.                  + (add)                           - (subtract)
  451.                  * (multiply)                      / (divide)
  452.                  log base N of x                   N raised to x
  453.                  x raised to the N power           x raised to 1/N
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.                                     -5-                                    
  465.      When multiplying or dividing by a negative number the result is
  466.      folded into the positive domain according to the following
  467.      formulae.
  468.   
  469.      For multiplication (Normal function):
  470.   
  471.          X' = | x * constant           when  constant >= 0.0
  472.               | x * constant + 1.0     when  constant <  0.0
  473.    
  474.      For division (Inverse function):
  475.   
  476.          X' = | x / constant           when  constant >= 0.0
  477.               | (x-1.0) / constant     when  constant <  0.0
  478.   
  479.      This ensures that the inverse function will always 'undo' the normal
  480.      function.  As a general rule, the inverse should 'undo' the normal
  481.      function to the limits of precision and domain.  For example,
  482.      multiplication by 2 then division by 2 will produce a ceiling at 0.5
  483.    
  484.      Absurd mathematical requests (there are at least seven types), like
  485.      log to a negative base or division by zero, are stopped and reported
  486.      with a message.
  487.   
  488.      But we do allow you to destroy your image. That's your prerogative.
  489.      After all,... there are an infinite number of ways to do it.  And... it
  490.      might be destroyed in a meaningful way.
  491.   
  492. Sharpen III (9.50)
  493. ==================
  494.  
  495. A broader sharpening filter.  This works well on higher resolution images and
  496. can have a more dramatic effect than Sharpen I and Sharpen II.
  497.  
  498. Intelligent Loader (9.50)
  499. =========================
  500.  
  501. Imagemaster now identifies image files that require external PI loaders and
  502. calls the appropriate loader.  For this to work, functionality changes were
  503. made, as follows:
  504.  
  505.       + While a PI Loader is in operation, button presses on the main
  506.         panel, and keyboard input are ignored, even though the load is
  507.         actually asyncronous.
  508.         
  509.         Hitting the Exit button, however,  will re-awaken the gadgets.
  510.         Processing of any script (except the PI loader) is halted until the
  511.         loader completes.
  512.  
  513.         A PI loader must include a 'finish' command to work correctly.
  514.  
  515.       + External loaders will be called even if the ARexx 'load' command
  516.         initiated the image load.
  517.  
  518.         PROGRAMMERS:  Imagemaster keeps account of whether the loader was
  519.                       initiated by the main panel or by an ARexx 'load'
  520.                        command using the variable fromrexxdepth2.
  521.  
  522.  
  523.                                     -6-                                    
  524.       + Imagemaster always wakes up every 0.5 seconds (using a timer) but will
  525.         not activate the main window if triggered by one of these timer events
  526.         even if autoactivate is on.
  527.  
  528.       + If the image file was not recognised, a message will be displayed.
  529.  
  530.       + A loader's existence is checked before it is run.  If the loader is
  531.         not found then a message will be displayed.
  532.  
  533.      Loaders done so far:
  534.      (Internal)  IFF     Amiga 24-bit and standard IFF
  535.                  HAME    Black Belt's high color images for the HAM-E
  536.                  DCTV    Digital Creation's video like DCTV images
  537.                  HAM     Amiga HAM
  538.                  HLFBRT  Amiga 64 color half bright images
  539.                  HICOLR  Amiga hi-color images
  540.   
  541.      (External)  TARGA
  542.                  TIFF    All known Tag Image File Format
  543.                  BMP     Windows and OS/2 bitmaps (DIB's)
  544.                  RENDITION
  545.                  SHAM    Amiga Sham
  546.                  DHRZ
  547.                  PMBC    Black Belt's lossless PMBC compressed images.
  548.                  UPB8    Amiga (RegPaint) 256 color brushes
  549.                  RGBN    
  550.                  RGB8
  551.                  PBM
  552.                  GIF     Compuserve's Graphic Interchange Format
  553.                  PCX     PC Paintbrush PCX
  554.                  MFLM    WinImages:morph 24-bit FiLMstrip files
  555.                  IRAW    I-raw graphics
  556.                  ANIM    Amiga anim files
  557.                  JPEG    J.P.E.G. high compression images
  558.                  NASA    Nasa/JPL images on CD
  559.                  BMASTER Black Belt's Board Master circuit board layout
  560.                  NBOOK   Black Belt's NoteBook files
  561.                  FLICK   Autodesk Animator (Pro) FLC & FLI animations
  562.                  HICOLR  AmigCON (Amiga .INFO) file
  563.      
  564.      Other loaders which can never be auto-identified:
  565.                  RAW     Raw color files
  566.                  GE_NMR  G.E.'s NMR scans
  567.      ...they will have to be loaded manually.
  568.   
  569.      All the Rexx scripts for the external loaders have changed and some have
  570.      also had changes to the executable (cmpi:) modules.
  571.  
  572.      Between 9.23 and 9.50 the following PI modules were extended to handle
  573.      more file sub-types:
  574.  
  575.         TARGA, PCX, TIFF, GIF, BMP, IRAW
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.                                     -7-                                    
  583.      There are some files which have a measurable chance of being
  584.      mis-identified:
  585.  
  586.                  PCX     1 in 256 raw files could be mis-identified as PCX
  587.            some  TARGA   1 in 64  raw files could be mis-identified as TARGA
  588.  
  589. We don't know of other of our formats which have fields at the appropriate
  590. places with ranges that would cause a mis-identification.  By checking the
  591. strongest ID formats first chances are minimized. For example, even though
  592. the PCX ID is contained inside the ICON (.INFO) ID, ICON files are checked
  593. first.
  594.  
  595. The internal IFF loader will show a busy pointer during the pre-read.
  596.  
  597. plugin extended structure - arexx (9.50+)
  598. =========================================
  599.  
  600. the 'plugin' Arexx command now returns an extended structure:
  601.   
  602.     struct plugin
  603.       {
  604.         struct jackinbuff *buffer; /* pointer to buffer        */
  605.         unsigned char id[4];       /* PLUG                     */
  606.         struct Screen *showscr;    /* IM's main gadget screen  */
  607.         unsigned char pname[4];    /* IP\0\0 IM\0\0 or IMFC    */
  608.         long   ver;                /* (short)ver || (short)rev */
  609.       };
  610.  
  611. AGA Palette Display (9.50)
  612. ==========================
  613. HAM8 precise colors are used throughout the new display; 24-bit color
  614. registers are also used to good effect. "New Look" display.
  615.  
  616. Resizes for Hi-Res and Super72 display resolutions so it is friendly
  617. to Super72 800x600 mode - won't cause a "multisync" monitor to have a kitten
  618. every time it is opened.
  619.  
  620. Render flag for each register:
  621.  
  622.     0 = GREY  = Normal
  623.     1 = AQUA  = Usable but not changable by the renderer
  624.     2 = BLACK = Skip / unusable
  625.  
  626.     ...these render flags are saved with each palette. They allow you to
  627.     choose with total precision which colors are to be used when an image is
  628.     created - you can choose any combination of colors yourself, you can
  629.     completely ensure that any combination of color registers are not used at
  630.     all, and you can have Imagemaster pick the best colors for any registers
  631.     you want to leave open for that use. Overall, this is the most flexible
  632.     Amiga image rendering capability ever available!
  633.  
  634. Range is seen and selected on the palette screen; no more range screen...
  635. plus the ranges look much better due to the use of the HAM8 modes.
  636.  
  637. Undo - on elevel undo allows you to un-oops.
  638.  
  639.  
  640.  
  641.                                     -8-                                    
  642. Color mixing area - spray painting in a typical "painter's mix area" allows
  643. you to fluidly create all kinds of mad colors with ease - it's a LOT of fun.
  644. You use the FKEYS to set the "flow rate" of the paint. F1 is slow, F10 is
  645. fast.
  646.  
  647. CMYK color space adjustments - for those with print needs, this capability is
  648. very useful. For the rest of you, it'll probably be educational but that's
  649. about it.
  650.  
  651. Exact Aspect (9.50)
  652. ===================
  653.  
  654. New operating display mode that (in combination with Set Display Aspect)
  655. allows you to inform Imagemaster of the aspect ratio of your complete system
  656. - including any distortions introduced by width and height settings of your
  657. display monitor - and see images exactly as they are intended to appear in
  658. print or on film. This new mode enhances the usability of the software
  659. considerably.
  660.  
  661. Set Display Aspect (9.50)
  662. =========================
  663.  
  664. In the display panel, this tool allows you to set the exact aspect ratio of
  665. your entire SYSTEM - not just the default Amiga aspect ratio. You do this by
  666. holding up a standard 3.5 inch floppy disk (one with no data on it!) to the
  667. screen of your monitor. We have drawn an outline of the floppy there with
  668. some visual cues so you can orient it correctly. Use the mouse to drag the
  669. on-screen outline so that it surrounds the diskette as closely as possible,
  670. also so that it is spaced evenly from each edge of the diskette. Once you
  671. have the adjustment performed, saving your defaults will allow you to "know"
  672. this at all times; and it ensures that the Exact Aspect mode will do what it
  673. is supposed to do. If the aspect ratio of your system is incorrect, then the
  674. display will not be correct either.
  675.  
  676. Note that each display mode of Imagemaster has it's own aspect information,
  677. and you are well advised to set each mode indpendantly and save them all.
  678. Particularly on AGA machines with multisyncs, as some multisyncs have
  679. differing widths and heights depending on the sweep rate of the monitor and
  680. other factors.
  681.  
  682. Remember that if you adjust the height and/or width of your monitor's
  683. display, you have modified the aspect of the SYSTEM and you will need to re-
  684. perform the Set Display Aspect operation to get the best display from
  685. Imagemaster.
  686.  
  687. When the system is in exact aspect mode, the filmstrip is also in that mode.
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.                                     -9-                                    
  701. pcontrol - arexx (9.50)
  702. =======================
  703.  
  704. This sets the render state for a register as per AGA palette screen.
  705.     0 =  Normal
  706.     1 =  Usable but not changable by the renderer
  707.     2 =  Skip / unusable
  708. Palettes loaded and saved will contain the control information.
  709.  
  710. pcontask - arexx (9.50)
  711. =======================
  712.  
  713. Returns the palette control flag value for that register.
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.                                    -10-                                    
  760. Rendering - Creating Amiga IFF images (9.50)
  761. ============================================
  762. Imagemaster offers the highest quality Amiga mode image generation of any
  763. software available at the time this is being written. The most important
  764. factors that go into this are these two:
  765.  
  766.     Color-picking
  767.     -------------
  768.         Choosing the best colors to use for the Amiga's color registers;
  769.         Imagemaster does this using proprietary methods developed at Black
  770.         Belt Systems. Most other software uses a statistical (most common
  771.         color) method; we don't, and the difference is easily visible.
  772.     
  773.     Dithering
  774.     ---------
  775.         Mixing those colors in such a way as to create other colors.
  776.         Imagemaster uses the absolute most advanced dithering techniques
  777.         available; state of the art artificial intellegence methods are used
  778.         to force maximum pattern-avoidance, resulting in fewer "rivers" and
  779.         other visible artifacts from the dither process itself.
  780.  
  781. All in all, Imagemaster can do a wonderful job of creating Amiga mode images
  782. for you. Following is the information you need to use these fine Amiga mode
  783. image rendering capabilities.
  784.  
  785. The Basics
  786. ----------
  787. In order to create an output image, Imagemaster requires that you set up a
  788. number of pieces of information so that it knows what you want it to do. Here
  789. are the basic steps you usually take to create an Amiga mode image:
  790.  
  791.     Set Amiga Render Mode
  792.     ---------------------
  793.         First, you choose the type of Amiga image you want created.
  794.     
  795.     Set Render Size
  796.     ---------------
  797.         Next, you set the output size of the image.
  798.  
  799.     Set Dither Type
  800.     ---------------
  801.         Next, you choose one of a number of dithering techniques.
  802.     
  803.     Set Render Palette
  804.     ------------------
  805.         Lastly, you tell Imagemaster how to choose the colors for the image.
  806.  
  807. Each of these steps offers many options; but we think you'll find that a
  808. certain set of them usually produces the best image. We'll point them out as
  809. we go.
  810.  
  811. Set Amiga Render Mode
  812. ---------------------
  813. In this panel, there are several types of options. You should choose the
  814. option that suits your needs the best. Each group is detailed as follows:
  815.  
  816.  
  817.  
  818.                                    -11-                                    
  819.     Image Encoding:
  820.     ---------------
  821.     Register:
  822.         Register mode can be described as a mode where each pixel in the
  823.         image is described by a single color register. In the Amigas which
  824.         have the "AGA" chipset, these color registers are 24-bits accurate.
  825.         In older model Amigas, the color registers are only 12-bits. The
  826.         number of color registers available depends upon the setting of the
  827.         "Bit Depth" options; you may have from 2 to 256 colors in a register
  828.         mode image.
  829.     
  830.     Extra Half Brite:
  831.         Extra Half Brite is a mode that was developed for the older Amigas in
  832.         order to add extra colors without having to add more color registers.
  833.         Here, the image is always 6 bitplanes, providing 64 possible values
  834.         for each pixel. If the pixel contains a value from zero to 31, then
  835.         the color produced is equal to that specified in color registers zero
  836.         to 31. However, if the pixel contains a value from 32 to 63, then the
  837.         color produced is that of a color register chosen from the first 32,
  838.         but only half as bright - hence the name "half brite". The register
  839.         from the first 32 is chosen by dividing the value (which is 32-63),
  840.         by two. For instance, if the pixel contains the value 60, color
  841.         register 30 is used, except it will be 1/2 as bright as the color in
  842.         register 30. There is also a subtle catch here; a color register that
  843.         contains brightness values in any combination of its R, G and B
  844.         components that are odd, such as 7, 9 and 11, cannot be changed to
  845.         exactly 1/2 its original brightness; this is because (for instance) 7
  846.         / 2 = 3.5, and the Amiga cannot generate a color that is accurate to
  847.         .5 of a brightness step.  This makes the choosing of half brite
  848.         colors more challenging, since these small errors must be taken into
  849.         account when generating an image. If you are generating images for
  850.         AGA based machines, we suggest that you never use Half-Brite; use 64
  851.         register colors instead. It costs exactly the same amount of memory,
  852.         processor time and so on, yet it gives you a much more flexible way
  853.         to create an image. Remember also that Half-Brite mode is only
  854.         available in Low-Res on non-AGA machines.
  855.     
  856.     HAM:
  857.         There are two Amiga HAM modes. The first is available in all
  858.         machines; the second is only available in machines which utilize the
  859.         AGA chipset. HAM uses a technique whereby a pixel's color may be
  860.         obtained either from one of a group of color registers, or by
  861.         modifying either the red, green or blue value of the previous pixel.
  862.         6-Bit HAM mode, which is available on all machines, allows color
  863.         selection from any one of 16 color registers, or modification of 4-
  864.         bits (16 levels) of color from the previous horizontal pixel. 8-Bit
  865.         HAM mode (which was first introduced to the Amiga marketplace by
  866.         Black Belt Systems, by the way) allows color selection from any one
  867.         of 64 color registers, or modification of 6-bit (64 levels) of color
  868.         from the previous horizontal pixel.
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.                                    -12-                                    
  878.         The term "HAM" stands for "Hold-And-Modify", which refers to holding
  879.         two of the color components and modifying the other one. There are
  880.         always four possibilities for each pixel, as follows:
  881.         
  882.             1 - Pick a color from either 16 or 64 color registers
  883.             2 - Modify the red portion of a pixel, hold green and blue
  884.             3 - Modify the green portion of a pixel, hold red and blue
  885.             4 - Modify the blue portion of a pixel, hold red and green
  886.  
  887.     Horizontal Pixel Size:
  888.     ----------------------
  889.     Low-Res        -  320 pixels in a non-overscan video line
  890.     High-Res       -  640 pixels in a non-overscan video line
  891.     Super High-Res - 1280 pixels in a non-overscan video line
  892.     
  893.     Vertical Pixel Size:
  894.     --------------------
  895.     Interlace     - 400 pixels in a non-overscan NTSC column
  896.                   - 512 pixels in a non-overscan PAL column
  897.     Non-Interlace - 200 pixels in a non-overscan NTSC column
  898.                   - 256 pixels in a non-overscan PAL column
  899.     
  900.     Bitplanes:
  901.     ----------
  902.     1 through 8 - each time you add a bitplane, you double the number of
  903.     possible pixel codes available. 1 bitplane provides two colors, and 8
  904.     bitplanes provides 256 colors. Some display modes, such as HAM and Extra
  905.     Half Brite, only allow certain bitplane combinations to be chosen.
  906.     
  907.     Palette Depth
  908.     -------------
  909.     12-Bit
  910.         This is a "fast" palette choosing method; The name does NOT refer to
  911.         the fact that some Amigas have 12-bit color registers; it refers to
  912.         the accuracy of the procedure that chooses the colors. The advantage
  913.         is that the choosing is much faster; the disadvantage is that images
  914.         will be visibly "noisier".
  915.         
  916.     24-Bit
  917.         This is an "accurate" palette choosing method. The name does NOT
  918.         refer to the fact that some Amigas have 24-bit color registers; it
  919.         refers to the accuracy of the procedure that chooses the colors. The
  920.         advantage of the 24-bit method is that the choosing of the colors is
  921.         as good as it possibly can be within Imagemaster; the disadvantage is
  922.         that the process takes considerably longer than the 12-bit accurate
  923.         approach.  If you are attepting to produce the best possible images,
  924.         you should always use the 24-bit option.
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.                                    -13-                                    
  937.     Genlocking
  938.     ----------
  939.     Identify the Genlock non-transparent area: This allows you to select a
  940.     region of the image that will NOT be transparent when shown using the
  941.     Amiga's genlocking capabilities. All other regions of the image will be
  942.     rendered using "color-zero", which causes the hardware genlock to show
  943.     video from an external source instead of the image information in the
  944.     picture.
  945.  
  946. Set Render Size
  947. ---------------
  948. In this panel, you set the absolute output size of the image. You also have
  949. the option to choose Interlace. The following reasonably self-explanatory
  950. controls are available:
  951.  
  952.     Horizontal Size Controls
  953.     ------------------------
  954.     Change Maximum Dimensions: Sets the maximum slider values
  955.     View Width slider
  956.     No Horizontal Overscan
  957.     H Overscan 1 - standard Amiga preset
  958.     H Overscan 2 - standard Amiga preset
  959.     H Overscan 3 - standard Amiga preset
  960.     Match Image Size (also affects vertical size)
  961.     
  962.     Vertical Size Controls
  963.     ----------------------
  964.     Change Maximum Dimensions: Sets the maximum slider values
  965.     View Height slider
  966.     No Vertical Overscan
  967.     V Overscan - standard Amiga preset
  968.     Match Image Size (also affects horizontal size)
  969.     
  970.     Reconstruction
  971.     --------------
  972.     Often when you create an image from a 24-bit original, the output image
  973.     will be a different size than the original. Imagemaster provides two
  974.     different methods of generating output pixels when this is the case. If
  975.     the output image is the same pixel dimensions as the input image, then it
  976.     does not matter which of these methods you choose; in both cases, input
  977.     and output pixels will match perfectly.
  978.     
  979.     Re-sample to New Size
  980.         Resampling means that if the output image you are going to render is
  981.         a different size than the 24-bit image data, the output image pixels
  982.         will be taken from a single pixel in the closest location possible to
  983.         that where the pixel would have been if the 24-bit image had been
  984.         that size. This is faster, but produces images of slightly lesser
  985.         quality than scaling.
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.                                    -14-                                    
  996.     Scale to New Size
  997.         Scaling means that if the output image you are going to render is a
  998.         different size than the 24-bit image data, the output image pixels
  999.         are created by combining all of the pixels in the input image that
  1000.         are in, or partially in, the same relative location if the images
  1001.         were actually the same overall size. This produces the absolute best
  1002.         output image quality, but takes longer to process.
  1003.  
  1004. Set Dither Type
  1005. ---------------
  1006. In this panel, you tell Imagemaster how to dither the chosen colors in your
  1007. output image. There are many choices, some of which you are very unlikely to
  1008. use; we include them for completeness. Here, we have very strong
  1009. recommendations about which settings to use for the highest quality output
  1010. image; these are as follows:
  1011.  
  1012.     1 - Either (a) "Two Point EDD"        - for the sharpest colors
  1013.                (b) "Floyd Steinberg"      - for a smoother output than EDD
  1014.     2 - A-I Enhanced selected             - for less dither artifacts
  1015.     3 - Turn Off Excursion Limit selected - for most accurate dithering
  1016.  
  1017. We believe that you will find that over 95% of all images look the best using
  1018. these settings. Some users will have special requirements; in those cases,
  1019. other settings may serve to produce the output you desire. Information about
  1020. the other settings is provided as follows:
  1021.  
  1022.     Dither Type
  1023.     -----------
  1024.     No Dither
  1025.         This tells Imagemaster to use the closest color available in the
  1026.         current video mode. No dither will be used to attempt to make the
  1027.         colors more accurate. The advantage of this technique is almost
  1028.         exclusively limited to animations, where the less change occurs from
  1029.         image frame to frame, the faster compressed animations can run. This
  1030.         produces the lowest quality image of all the available dither modes,
  1031.         and should be avoided if at all possible.
  1032.     
  1033.     Two-Point EDD
  1034.         Two point EDD dithering produces the most accurate colors of all the
  1035.         dither modes. It does this at the expense of an increase in the
  1036.         amount of visible "noise" in the image; dithering is perceived more
  1037.         easily by the viewer of the image; the image seems "harder".
  1038.     
  1039.     Floyd-Steinberg
  1040.         Floyd-Steinberg dithering produces the next most accurate colors (EDD
  1041.         being the most accurate) but provides what almost everyone agrees to
  1042.         be the best compromise between color accuracy and smoothness. The
  1043.         images seem "softer" than EDD dithered images, yet the colors are
  1044.         highly effective.
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                                    -15-                                    
  1055.     Jarvis, Judice, Ninke
  1056.         Very similar to Floyd-Steinberg, but smoother, slightly less accurate.
  1057.     
  1058.     Stucki
  1059.         Very similar to Floyd-Steinberg, but smoother yet, and even less
  1060.         accurate.
  1061.     
  1062.     Random F-S (Floyd-Steinberg)
  1063.         This method is not recommended; it is extremely noisy. Usable only
  1064.         for images viewed from a consderable distance. Extremely noisy; has
  1065.         the advantage of being totally random, so no visual artifacts occur
  1066.         over large distances.
  1067.         
  1068.     Dual Random F-S (Floyd Steinberg)
  1069.         This method is not recommended; it is extremely noisy, although less
  1070.         so than "Random F-S". Usable only for images viewed from a
  1071.         consderable distance. Extremely noisy; has the advantage of being
  1072.         totally random, so no visual artifacts occur over large distances.
  1073.  
  1074.     
  1075.     Artificial Intellegence
  1076.     -----------------------
  1077.     A-I Enhanced
  1078.         This uses proprietary techniques to reduce certain types of artifacts
  1079.         in the image dithering, specifically "rivers" and "trails". Not
  1080.         effective for HAM mode; we suggest this always be used.
  1081.     
  1082.     Deterministic
  1083.         This method disables the A-I techniques; all dithering techniques
  1084.         produce the typical artifacts. Not recommended.
  1085.     
  1086.     Modifiers
  1087.     ---------
  1088.     Chekov Forcing
  1089.         This will cause the color picking code to choose slightly different
  1090.         registers which will help portions of the image that have color "hot
  1091.         spots" to render more accurately. Our suggestion for the best render
  1092.         quality for most images (there will be a few exceptions to this) is
  1093.         to try Chekov Forcing if the image does not seem to be very
  1094.         accurately reproduced in the brightest or darkest portions. Chekov
  1095.         forcing is a 50-50 kind of thing. Sometimes it helps a lot, but it
  1096.         also can make the render worse - you have to try it and see.
  1097.     
  1098.     Entropy Enhance
  1099.         This causes dither to "decay" more rapidly; it can help limit "color
  1100.         ringing" at sharp color change edges in the image. Normally,
  1101.         you should leave this off; Imagemaster looks for these kinds of
  1102.         problems within the A-I Enhancement procedures and attempts to
  1103.         specifically remove them. Entropy enhancement is a general effect
  1104.         that will visibly affect the entire color image surface.
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.                                    -16-                                    
  1114.     Turn Off Excursion Limit
  1115.         The control "Turn Off Excursion Limit" may be used to modify the
  1116.         quality of most render modes. It works with dithering to provide a
  1117.         larger color space. If you turn off the dither when rendering, this
  1118.         has no applicability. If you turn excursion off, the dither
  1119.         operations can reach more colors in the color space. The image may
  1120.         appear slightly rougher as a result. If you feel that the image is
  1121.         too rough, we suggest you try the render again with it on. Otherwise,
  1122.         leave it off. Almost all images will render more accurately with this
  1123.         button depressed.
  1124.  
  1125. Set Render Palette
  1126. ------------------
  1127. This panel provides you with the tools you need to completely control the
  1128. colors used in the generation of an Amiga image. You can even let Imagemaster
  1129. pick some or all of the colors for you; you can specify colors to use "as
  1130. is", or, if you have an AGA machine, you can specify colors NOT to be used at
  1131. all in the render. You can do this in any combination you like. Here are the
  1132. options provided:
  1133.  
  1134.     Use Existing Palette
  1135.         This tells Imagemaster that you want it to use the colors you have
  1136.         set up in the palette, instead of picking colors on its own. This may
  1137.         be useful if you require that certain colors be available for later
  1138.         modification in a paint program, for intance. You can force a black
  1139.         and white render by providing a palette that has only grey levels in
  1140.         it.
  1141.     
  1142.     Generate New Palette
  1143.         This tells Imagemaster to create a set of colors that will be able to
  1144.         represent the image being rendered reasonably well. If the 24-bit
  1145.         color method is being used, Imagemaster will do an extrodinary job of
  1146.         picking colors for you.
  1147.     
  1148.     Number Of Registers
  1149.         This tells Imagemaster how many colors to pick.
  1150.     
  1151.     Adjust Palette
  1152.         This opens Imagemaster's standard palette screen; see the paint
  1153.         documentation for details on its use. Basically, you can set up any
  1154.         colors you need in the palette, and then use them by selecting "Use
  1155.         Current Palette". One additional feature with AGA machines running
  1156.         Imagemaster is the ability to specify a color in three ways by
  1157.         clicking on the button below the color in the palette;
  1158.         
  1159.             1 - Imagemaster is to choose a new, optimum color     (grey)
  1160.             2 - Imagemaster is to use the color "as is"           (aqua)
  1161.             3 - Imagemaster is NOT to use the color in the render (dark)
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.                                    -17-                                    
  1173.     Use Current Range
  1174.         This tells Imagemaster that you want it to use the colors you have
  1175.         set up in the current range, instead of picking colors on its own.
  1176.         This may be useful if you require that certain colors be available
  1177.         for later modification in a paint program, for intance. You can force
  1178.         a black and white render by providing a range that has only grey
  1179.         levels in it.
  1180.     
  1181.     Select Range
  1182.         This allows you to choose a range from the available loaded ranges.
  1183.  
  1184. Quick Tour of generating an Amiga-mode Image
  1185. ============================================
  1186. Follow these easy steps to make a high-resolution, 16-color image.
  1187.  
  1188.     1 - Load an image as the primary buffer
  1189.     2 - Select the "File I/O" panel
  1190.     3 - Select the "Set Amiga Render Mode" panel
  1191.     4 - Choose (a) "Register"
  1192.                (b) "High-Res"
  1193.                (c) "4 B P"
  1194.                (d) "24 Bits - 16.8m Colors displayable"
  1195.                (e) "Interlace"
  1196.     5 - Press "Done"
  1197.     
  1198.     6 - Select the "Set Render Size" panel
  1199.     7 - Choose (a) "No Horizontal Overscan"
  1200.                (b) "No Vertical Overscan"
  1201.                (c) "Scale to New Size"
  1202.     8 - Press "Done".
  1203.     
  1204.     9 - Select the "Set Dither Type" panel
  1205.    10 - Choose (a) "Two Point EDD"
  1206.                (b) "A-I Enhanced"
  1207.                (c) "Turn Off Excursion Limit"
  1208.    11 - Press "Done"
  1209.    
  1210.    12 - Select the "Set Render Palette" panel
  1211.    13 - Choose (a) "Generate New Palette"
  1212.                (b) Set the number of registers to "16"
  1213.    14 - Press "Done".
  1214.    
  1215.    15 - Select the "Render To File" panel
  1216.    16 - Choose (a) "Entire Image"
  1217.    
  1218. Image rendering begins now; when the render completes, use the file requester
  1219. to choose where the IFF file is to be saved, pick an appropriate name for it
  1220. and press "Save". You're all done!
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.                                    -18-                                    
  1232.     New morphing documentation (9.23)
  1233.     =================================
  1234.     
  1235.     This addendum file now contains extensive documentation on the morphing
  1236.     tools. If you find any mistakes, please let tech support know. Thanks!
  1237.  
  1238.     New AGA modes supported (9.21)
  1239.     ==============================
  1240.     
  1241.     Imagemaster now supports 256-color and 262,144-color display and
  1242.     render functions. Display of images in these modes is limited to Amiga
  1243.     models that actually utiltize the new AGA graphics chips such as the
  1244.     Amiga 4000 and Amiga 1200. Rendering to these modes may be done in any
  1245.     model Amiga computer using Imagemaster.
  1246.     
  1247.     For display operations, the new mode controls will appear
  1248.     automatically when Imagemaster is run in a machine that supports AGA
  1249.     displays.
  1250.     
  1251.     Note that the DisplayMode ARexx command will automatically select HAM8
  1252.     if told to change to "HAM" in an AGA machine.
  1253.     
  1254.                                  ----------
  1255.  
  1256.     New Render Panel (9.21)
  1257.     =======================
  1258.     
  1259.     Imagemaster's render panel has been re-created from scratch. It is now
  1260.     possible to create an image in any possible displayable Amiga mode
  1261.     with just a few control settings. Also, Amiga render quality has been
  1262.     further improved. 
  1263.     
  1264.     If a render mode is not displayable, either because there is not
  1265.     enough "chip" ram left, or because the machine being used does not
  1266.     support the mode in question, then the render will be created in
  1267.     "fast" ram and saved from there.
  1268.     
  1269.                                  ----------
  1270.  
  1271.     Dither control in Display Panel (9.21)
  1272.     ======================================
  1273.     
  1274.     This control allows you to set the amount of dithering that
  1275.     Imagemaster performs from none to a high maximum value in varying
  1276.     degrees. 
  1277.     
  1278.     For some images, this will aid in editing rougher areas where the
  1279.     dither may actually be hiding detail.
  1280.     
  1281.                                  ----------
  1282.     
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.                                    -19-                                    
  1291.     Distance Calculator
  1292.     ===================
  1293.     This tool is found in the analysis panel. It allows you to
  1294.     convert distances between Inches, cm, picas, points, Horizontal pixels,
  1295.     and Vertical pixels. This works with the distance and area calculation
  1296.     capabilties already available in Imagemaster.
  1297.     
  1298.     Pad Canvas
  1299.     ==========
  1300.     This tool is found in the resizing and clipping panel, under
  1301.     the process main panel. It's function is to pad the selected
  1302.     area to a new size, and it allows the user to position the
  1303.     clipped and padded area into any one of nine specific
  1304.     regions. You could use this to easily center an image in an
  1305.     otherwise blank display, for instance. Following is the ARexx
  1306.     coding for this operation:
  1307.     
  1308.     'padcanvas <Xsize> <Ysize> <Position> <NewName>'  ARexx command.
  1309.     
  1310.     [returns the buffer number]
  1311.     
  1312.     Xsize and Ysize are the dimensions of the new buffer,
  1313.     
  1314.     Position is 1 = Top Left
  1315.                 2 = Top Center
  1316.                 3 = Top Right
  1317.                 4 = Middle Left
  1318.                 5 = Middle Center
  1319.                 6 = Middle Right
  1320.                 7 = Bottom Left
  1321.                 8 = Bottom Center
  1322.                 9 = Bottom Right
  1323.  
  1324.     The Following is a working script :
  1325.                   
  1326.                   /* ARexx example of PADCANVAS operation * /
  1327.                   address('IM_Port');
  1328.                   'entire';
  1329.                   options results;
  1330.                   'padcanvas 400 400 5 NewClip';
  1331.                   'newcurrent '||result;
  1332.                   exit 0;
  1333.  
  1334.     Virtual Memory accommodation
  1335.     ============================
  1336.     In the SETUP panel, a button marked "Use Public Memory" is now
  1337.     available. This button is (by default) selected; Imagemaster's philosophy
  1338.     about memory is that since it needs to get at its own images, and
  1339.     external PI modules also need to, then the image memory should be public.
  1340.     
  1341.     Some virtual memory managers, in particular GigaMem (from Innovatronics
  1342.     in the US), make the assumption that memory which is to be virtual is NOT
  1343.     public; they look at the type of memory a program asks for and if the
  1344.     memory is not public, they will allocate virtual memory. Since VM is
  1345.     very, very useful when processing large images, we have provided a way
  1346.     for Imagemaster to NOT use public memory. Just release the button and
  1347.     save the config; then quit and restart Imagemaster.
  1348.  
  1349.                                    -20-                                    
  1350.     Custom Area Shape Selections
  1351.     ============================
  1352.     The image manipulation software now has the capability to use an
  1353.     unlimited number of custom shapes for selecting areas for processing,
  1354.     composition, analysis, painting and so on.
  1355.     
  1356.     In the area selection panel, you will now find "Load New Shape",
  1357.     "Shape From Center", and "Shape From Corner". Until you load a custom
  1358.     shape, the other two selections will be ghosted.
  1359.     
  1360.     Shape files have the extension ".ish" attached to them. We have
  1361.     provided a number of them with the program, you may place them
  1362.     anywhere in your computer's filesystem. Once you have specified a
  1363.     directory to load shapes from, saving the preferences of the image
  1364.     manipulation program (from the setup panel) will cause this location
  1365.     to be remembered permanently.
  1366.     
  1367.     You can use any one custom shape at a time. Once one is loaded, it
  1368.     stays loaded until you load a new shape. Some that we have provided
  1369.     with this release are triangles, pentagons, octagons and stars. You
  1370.     can create these shapes yourself, too, if you're handy with graph
  1371.     paper and comfortable editing ASCII files.
  1372.     
  1373.     ".ish" files contain only ASCII text. Examining one will show the very
  1374.     simple structure of the files. Blank lines "lift the pen" which allows
  1375.     you to make shapes that are multiple - that is, disjoint. Lines which
  1376.     begin with an asterisk are comments; these are ignored by the image
  1377.     manipulation software. Lines with co-ordinates on them are used as
  1378.     active point locations for the shape. We suggest you examine the
  1379.     "Triangle.ish" file, as it is very easy to understand. There is also
  1380.     an "example.ish" file which is designed to be instructive.
  1381.     
  1382.     When drawing with a custom shape, you can reposition it by pressing
  1383.     the right mouse button. Note that shapes from center act differently
  1384.     than shapes from corner. Note also that changing the direction you
  1385.     move the mouse when you drag out the shape will reverse (or flip, or
  1386.     both) the shape you are drawing.
  1387.     
  1388.     Shapes can be used in the line drawing tools inside the paint portion
  1389.     of the program --- you may find this a fine aid to construction of
  1390.     certain types of drawings. They may also be used with the morph tools.
  1391.     
  1392.     If you design your own shape files, please feel free to upload them to
  1393.     CompuServe or to our company support BBS, where other users of our
  1394.     software will be able to benefit from them. Our support BBS number is
  1395.     (406) 367-2227.
  1396.  
  1397.                                  ----------
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.                                    -21-                                    
  1409.     ANIM OP-5 Generation from Sequencer
  1410.     ===================================
  1411.     We have added the capability to generate Amiga animations directly
  1412.     from within the image manipulation software. Both the sequencer and
  1413.     the morph generator can do this.
  1414.     
  1415.     You must install the latest PI Modules from the disks (or the telecomm
  1416.     distribution archive) for this to work.
  1417.     
  1418.     Whenever you wish to generate anims, you simply set up three of the
  1419.     four script entries in the sequencer or the morph generator with the
  1420.     names of three predefined scripts. The script entries and the exact
  1421.     contents are as follows:
  1422.     
  1423.           Name Of Script            Exact Contents
  1424.         ------------------          --------------
  1425.         Opening Script              rxpi:animwr1.rexx
  1426.         Pre-Render Script           
  1427.         Post-Render Script          rxpi:animwr3.rexx
  1428.         Closing Script              rxpi:animwr4.rexx
  1429.     
  1430.     Note that there is nothing specified for the "Pre-Render" script. This
  1431.     is intentional. For almost all cases of morphing, no Pre-Render script
  1432.     is required. For almost all cases of sequencing with the exception of
  1433.     batch rendering, you will want to use your own, custom script to
  1434.     specify what effects will occur during the sequence.
  1435.     
  1436.     For instance, the example scripts given later on in this document all
  1437.     belong in the Pre-Render script entry. If you use this with this anim
  1438.     generation capability, then all four script entries will be used. You
  1439.     don't have to worry about the three we provide; they will work very
  1440.     well with the others described here.
  1441.     
  1442.     Once you have placed the scripts named above in the proper three
  1443.     entries, rendered output from the sequencer or morph generator will go
  1444.     directly to ANIM format. You must remember to select a render mode
  1445.     appropriate for the animation, as well as a render output size and so
  1446.     forth - this will ensure that the animation is the type you want it to
  1447.     be. Note that some animation players require the use of a constant
  1448.     palette, or will simply look better if you use a constant palette.
  1449.     
  1450.     For the technically minded:
  1451.     ---------------------------
  1452.     The four scripts now available in the sequencer allow you to have
  1453.     total control over the disposition of the files generated. This ANIM
  1454.     generator is a good example of what you can do. All you need to know
  1455.     is that the Opening script runs once, before all other activity; the
  1456.     pre-render script runs just before each frame is rendered or saved;
  1457.     the post-render script runs just after each frame is rendered or
  1458.     saved; and the closing script runs once after all frames have been
  1459.     generated.
  1460.     
  1461.     You can use these four "launches" to completely control any external
  1462.     disposition of the generated files. Output to film recorders or
  1463.     single-frame video recorders are obvious applications. The
  1464.     possibilities are endless, and the flexibility is unlimited.
  1465.  
  1466.                                  ----------
  1467.                                    -22-                                    
  1468.     Automatic Custom Display Updating
  1469.     =================================
  1470.     With version 9.09, we have added the capability to automatically lauch
  1471.     a script every time the software re-displays the current buffer to the
  1472.     monitor.
  1473.     
  1474.     This capability is meant to be used with pre-prepared scripts and
  1475.     commands provided by Black Belt or other developers. What it does
  1476.     for you is allows you to view on a different display than the one
  1477.     you normally use (for instance, the Amiga graphics output when using
  1478.     Imagemaster), the current condition of the primary image,
  1479.     automatically.
  1480.     
  1481.     We have provided the first of these automatic update display modules
  1482.     for Impulse's FC24 board. If you have an FC24, and are using it on a
  1483.     separate monitor, simply place...
  1484.     
  1485.             rxpi:imfc24.rexx
  1486.     
  1487.     ...in the entry entitled "redraw script" inside the display panel.
  1488.     (You must use the imfc24 script from the latest PI Module
  1489.     distribution; earlier versions of the PI Module are not capable of
  1490.     this). Once this is set, press the "Call Redraw Script" button and
  1491.     you're ready to go. From now on, the image you're working on will be
  1492.     maintained on the independant FC24 monitor as well as on the Amiga
  1493.     (or HAM-E) display. This only works in the standard Imagemaster.
  1494.     
  1495.     In the provided imfc24.rexx script, there are several variables at the
  1496.     beginning of the script that may be set by the user to control the
  1497.     display resolution used on the FC24 during automatic updates.
  1498.     
  1499.     For Developers:
  1500.     ---------------
  1501.     Using this new capability is simple. The scripts which are called from
  1502.     the "redraw script" entry are called with the following 5 parameters:
  1503.     
  1504.         "JACKIN" - structure pointer (in ASCII Hexadecimal)
  1505.             "X1" - leftmost point of the area which needs redrawing
  1506.             "Y1" - topmost point of the area which needs redrawing
  1507.             "X2" - rightmost point of the area which needs redrawing
  1508.             "Y2" - bottommost point of the area which needs redrawing
  1509.     
  1510.     An ARexx script that uses these might look like...
  1511.     
  1512.         /*      Sample Automatic Display Script For Developers       */
  1513.         parse arg jacker x1 y1 x2 y2;              /* get parameters */
  1514.         address command cmpi:mydupdate jacker x1 y1 x2 y2; /* do it! */
  1515.         'finish';       /* Very Important - tells us we can continue */
  1516.     
  1517.     ...here, the ARexx variables "jacker", "x1", "y1", "x2" and "y2" are
  1518.     automatically set by our software when we call your script. You can
  1519.     then use the data in these variables to instruct your display control
  1520.     program what it is it needs to do. Here, we're calling a hypothetical
  1521.     program called "mydupdate" which would take these variables and then
  1522.     deal with the display it is written to handle. Finally, we use
  1523.     'finish'; to tell our software it may continue processing.
  1524.     
  1525.                                  ----------
  1526.                                    -23-                                    
  1527.     Roll Image Geometric Process
  1528.     ============================
  1529.     This operation allows you to roll an image in the horizontal, vertical
  1530.     or both directions. Normal rolling goes down and right; negative roll
  1531.     amounts cause rolling to go left or up.
  1532.  
  1533.     There are three roll modes. The first is "wrap", where the portion of
  1534.     the image that has rolled off of the edge re-appears on the opposite
  1535.     edgein the newly opened area. The second is "fill with edge pixels",
  1536.     where the pixels rolled off the edge are lost and the incoming edge is
  1537.     filled with a duplicate of the receeding edge of the image. The third
  1538.     is "pad with color", where the pixels rolled off the edge are lost and
  1539.     the incoming edge is filled with a solid color you select using "set
  1540.     foreground color" in the process panel.
  1541.  
  1542.     This function is located in the Geometric Operations panel, which
  1543.     itself is located under the main Process panel.
  1544.     
  1545.     ARexx Operation
  1546.     ---------------
  1547.     rollimage <xamount> <yamount> <mode>
  1548.  
  1549.     parameters <required> [optional] :
  1550.     
  1551.         <xamount> - a positive or negative value for horizontal roll
  1552.         <yamount> - a positive or negative value for vertical roll
  1553.            <mode> - 0=wrap, 1=edge fill, 2=color fill.
  1554.  
  1555.     effects:
  1556.     
  1557.         ARexx variable RC is set to zero if no problems, nonzero if the
  1558.         user presses "CANCEL" while the effect is being generated
  1559.  
  1560.     example of use:
  1561.     
  1562.         /* simple test script for 'rollimage' */
  1563.  
  1564.         address 'IM_Port';        /* allows us to talk to our software */
  1565.         'rollimage' 10 10 0;         /* do the roll in edge wrap mode. */
  1566.         if rc ~= 0 then say "User Pressed Cancel!";        /* informer */
  1567.         exit 0;                                           /* all done! */
  1568.  
  1569.                                  ----------
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.                                    -24-                                    
  1586.     Compose and Process panels reorganized
  1587.     ======================================
  1588.     With version 9.00, a major reorganization of the image processing and
  1589.     composition control panels was put into effect.  This was done for two
  1590.     main reasons. First, the process panel and the F/x panel, a panel of
  1591.     other process operations, had both become so loaded with functions
  1592.     that it was quickly becoming a significant effort to locate a
  1593.     particular tool - especially if that tool wasn't one you used often
  1594.     (and so were not quite familiar with where it was placed).  The
  1595.     compose panel, though not nearly as heavily loaded, suffered from a
  1596.     similar problem. The new panel organization, while quite different from
  1597.     the organization present in versions 1.00 through 8.02, is easier to
  1598.     learn and easier to use because it is more highly structured.
  1599.  
  1600.     The second reason comes about because the image manipulation software
  1601.     does not contain pre-drawn buttons (gadgets). Instead, it generates
  1602.     the buttons and other controls needed for a particular panel only when
  1603.     it is time to open that panel, and then discards them after that panel
  1604.     has been closed. We designed it this way because it saves many
  1605.     hundreds of thousands of bytes of ram during operation, and also
  1606.     reduces the main program size on disk by the same amount. These are
  1607.     both significant benefits; however, when a large panel needs to be
  1608.     generated, the time involved to create the control images and other
  1609.     items for display can become significant. The new organization of the
  1610.     panels results in more control panels, all of which contain fewer
  1611.     controls... so the individual panels are generated more quickly.
  1612.     
  1613.     In addition to the major panel rework, other user interface changes
  1614.     were also made to help ease the program's operation. The "info" panel
  1615.     is now accessable directly from the main panel; the render controls in
  1616.     the File I/o panel have been subtly re-arranged to be easier to use;
  1617.     the program's autoactivation capabilities have been steamlined for
  1618.     more efficient operation; the font list requester was widened for
  1619.     easier use with longer font names; you can now use the 2.0 (ASL) file
  1620.     requester if you prefer, and the sequence processor can now sort the
  1621.     file list for you.
  1622.  
  1623.     The following lists show the general organization of the new panels;
  1624.     the number following each new panel represents the number of basic
  1625.     tools in each. In many cases, these tools lead to still other tools
  1626.     and effects, totalling many hundreds of different operations.
  1627.  
  1628.     Process --------- Standard Adjustments          ( 22 )
  1629.                       R,G,B Corrections             (  9 )
  1630.                       Filters                       ( 21 )
  1631.                       Geometric Transformations     ( 19 )
  1632.                       Special Effects               ( 33 )
  1633.                       Analysis                      (  8 )
  1634.                       Resizing and Clipping         (  9 )
  1635.                       Set Blend                     ( 10 )
  1636.  
  1637.     Compose --------- Linear Compositions           (  8 )
  1638.                       Color Keyed Compositions      (  8 )
  1639.                       Color Recombinations          (  7 )
  1640.                       Algebraic Compositions        (  4 )
  1641.                       Logical Compositions          (  3 )
  1642.                       Special Compositions          (  7 )
  1643.                       Composition Controls          (  5 )
  1644.                                    -25-                                    
  1645.     Zoom Clip
  1646.     =========
  1647.  
  1648.     This operation allows you to zoom in a specific amount "into" the
  1649.     image in the primary buffer. It is located in the Process, Resizing
  1650.     and Clipping panel.
  1651.  
  1652.     The intention is to allow zooms within animation sequences to be
  1653.     generated in a natural manner. You can specify the percentage to zoom
  1654.     in, and also the output resolution for the resulting clip. Note that
  1655.     the output resolution will always default to the same resolution as
  1656.     the current primary image.
  1657.  
  1658.     Remember that the higher the resolution of the source image, the more
  1659.     detail will result in the zoom. Extreme magnifications, while smooth,
  1660.     will very likely not appear realistic. We suggest that for extreme
  1661.     zoom effects, you may wish to generate several sequences using
  1662.     different resolution sources.
  1663.  
  1664.     ARexx Operation
  1665.     ---------------
  1666.     zoomclip <xzoom> <yzoom> <xc> <yc> <name> [xs] [ys]
  1667.  
  1668.     parameters:
  1669.         <xzoom> - required Percentage from 101% to 2000%
  1670.         <yzoom> - required Percentage from 101% to 2000%
  1671.         <xc> ---- required Horizonal (X) Center, in pixels
  1672.         <yc> ---- required Vertical (Y) Center, in pixels
  1673.         <name> -- required Name for the newly created clip
  1674.         [xs] ---- optional (X) Size for newly created clip
  1675.         [ys] ---- optional (Y) Size for newly created clip
  1676.  
  1677.     effects:
  1678.         ARexx variable RC is set to zero if no problems, nonzero for error
  1679.  
  1680.         if OPTIONS RESULTS is in effect, returns ARexx variable
  1681.         "RESULT" as the number of the newly created clip.
  1682.  
  1683.     example of use:
  1684.         /* test script for 'zoomclip' in sequence processor */
  1685.  
  1686.         options results         /* let image processor return results */
  1687.         'tween 101 200';    /* get value for this frame, 101% to 200% */
  1688.         Z = result;                     /* copy to variable named "Z" */
  1689.         'zoomclip' Z Z 100 100 "zoomed image" 320 200; /* do the zoom */
  1690.         'finish';              /* tell image processor script is done */
  1691.  
  1692.                                  ----------
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.                                    -26-                                    
  1704.     Image masks
  1705.     ===========
  1706.     
  1707.     General
  1708.     -------
  1709.     In the image processor, images may have a local mask. This mask is
  1710.     permanently associated with the image, and its purpose is to define
  1711.     the usable (valid) region of the image. For instance, if you create a
  1712.     text object image, there is a mask that is the shape of the text which
  1713.     "masks off" the rest of the image area, which is actually rectangular.
  1714.     
  1715.     In addition, when you specify a region of an image you want to do
  1716.     something to with any of the region selection tools, you are creating
  1717.     a temporary mask within which the effect is to occur. In normal
  1718.     operation, if the image has a local mask, both the local mask and the
  1719.     temporary main (area selection) mask are used to specify the region to
  1720.     be affected.
  1721.     
  1722.     Loading and Saving Masks
  1723.     ------------------------
  1724.     You may load,and save masks from and to both the main (area
  1725.     selection) and local (validation) masks. In addition, you can
  1726.     specify logical operations to occur when you load a mask; you can
  1727.     'or' it with the currently existing mask, replace the current mask
  1728.     with it, and so on.
  1729.     
  1730.     Note that there are corresponding ARexx commands for loading and
  1731.     saving both masks.
  1732.     
  1733.     Virtual Resolution
  1734.     ------------------
  1735.     Masks are saved in the resolution of the image they are associated
  1736.     with, so this is the limit of detail you can save. When masks are
  1737.     loaded, however, they are scaled to the same size as the current
  1738.     image. This "virtual" resizing allows you to use a mask as a cookie-
  1739.     cutter on any size image simply given that you've defined it the way
  1740.     you want to.
  1741.     
  1742.     One example of this might be to create a text object, and then save
  1743.     the mask. Now, reload that mask as the image mask using replace, and
  1744.     the only parts of the image that are valid are those regions within
  1745.     the shapes of the letters. This is a very powerful capability.
  1746.     
  1747.     Masks from ARexx
  1748.     ----------------
  1749.     From ARexx, you can use masks with the sequence processor very handily.
  1750.     Say you have a series of images within which you wish to affect the same
  1751.     relative region. Load one of the images, and carefully define the area
  1752.     to be affected. Save the main mask. Now, in the sequence processing
  1753.     script, you can reload that mask using REPLACE mode and each image
  1754.     processed in the sequence will be affected in the same region.
  1755.     
  1756.     The ARexx commands are 'loadmask', 'savemask', 'loadimask' and
  1757.     'saveimask'. All are explained later in this document. The load commands
  1758.     have logical variations; and, or, xor, subtract, replace.
  1759.     
  1760.                                  ----------
  1761.  
  1762.                                    -27-                                    
  1763.     Shadows in Compositing
  1764.     ======================
  1765.  
  1766.     General
  1767.     -------
  1768.     Shadows can be generated as an additional effect during
  1769.     compositing operations. There are two controls in the Compose
  1770.     panel that facilitate this.
  1771.  
  1772.     The "switch" that controls whether a shadow is generated is called
  1773.     "Shadow Enable". When this is selected, a shadow is generated.
  1774.  
  1775.     How the shadow appears is controlled by the panel that appears
  1776.     when you select "Shadow Control" from the compose panel. In this
  1777.     panel you will find the means to set the direction of the shadow
  1778.     to any angle, its intensity (how dark the shadow appears) and the
  1779.     length of the shadow.
  1780.  
  1781.     The angle should be set to the opposite direction that you want
  1782.     the illumination to appear to be coming from. '0' degrees is
  1783.     straight up, and as the angle increases, the shadow proceeds
  1784.     clockwise from that position. 1/4 of a turn is 90 degrees.
  1785.  
  1786.     Shadow intensity is least (lightest) when it is set to zero, and
  1787.     most intense (darkest) when it is set to 255. Note that if you
  1788.     are using any blending techniques, the shadow will also obey the
  1789.     blend parameters; a partially transparent object will produce a
  1790.     lighter shadow than a non-transparent object. The shadow will
  1791.     follow the transparency curve of the object exactly unless you
  1792.     specifically tell it not to.
  1793.  
  1794.     The length of the shadow is specified in pixels, and it essentially
  1795.     defines the distance that the shadow position is offset from the
  1796.     position you placed the original item being composited.
  1797.  
  1798.     This capability allows you to create shadows with realistic soft edges
  1799.     easily. One technique you might like to try is setting a blend with very
  1800.     soft edges, and with shadow on, compositing the images together. Next,
  1801.     turn the shadow off, and the blending off; now re-composite the images
  1802.     using "Previous Region". This will generate a perfect shadow with soft
  1803.     edges, yet the composed image will be sharp. This effect duplicates what
  1804.     happens when an object is removed a significant distance from the
  1805.     surface where the shadow is cast.
  1806.  
  1807.                                  ----------
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.                                    -28-                                    
  1822.     FilmStrips
  1823.     ==========
  1824.  
  1825.     General
  1826.     -------
  1827.     The image processor's film strip capability provides you with
  1828.     two distinct capabilities;
  1829.  
  1830.         - you can have a visual record of what you've been doing
  1831.         - you can animate the contents of a filmstrip as a test
  1832.  
  1833.     The filmstrip contents may be saved and reloaded; you can
  1834.     view the filmstrip in interlace or non-interlace; you can
  1835.     manually insert frames or let the image processor do it for
  1836.     you, automatically; you can use a VCR-style control panel to
  1837.     go anywhere in the filmstrip; and you can set the filmstrip
  1838.     to any length you like (based upon how much memory you have,
  1839.     of course).
  1840.     
  1841.     You can choose between either a B&W filmstrip, or a color
  1842.     filmstrip. There is a tradeoff here; B&W filmstrips are very
  1843.     good for detail, but you can't see any color effects that may
  1844.     be important to you. Color filmstrips, while very good at
  1845.     generally representing color, are very rough by comparison
  1846.     due to the dithering techniques that must be used to make
  1847.     full color images from a 16-color preset Amiga palette. Color
  1848.     filmstrips work much better as an interlace filmstrip since
  1849.     there are twice as many pixels available for the dither to
  1850.     use. If you use a color filmstrip and want it to be viewed
  1851.     with the supplied viewer (FilmView), then you'll need to
  1852.     ensure that version 1.01 of the viewer is being used (this is
  1853.     supplied on the current release disks).
  1854.     
  1855.     When you change the length of the filmstrip, if the new length is longer
  1856.     than the previous length, the filmstrip contents are retained.  If the
  1857.     new length is shorter, then any frames which were "deeper" into the
  1858.     filmstrip than its new length will be lost.
  1859.  
  1860.     You can change the animation playback from "pong" to "loop"; this will
  1861.     come in handy often. Reverse animation is also available.
  1862.     
  1863.     Other controls available include insertion, deletion and swapping of
  1864.     frames. Frames are numbered to facilitate these operations.
  1865.  
  1866.     You'll find the filmstrip controls in the DISPLAY, Morph and Sequence
  1867.     panels. Filmstrip allocation (creation) is performed only in the display
  1868.     panel.
  1869.  
  1870.                                  ----------
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.                                    -29-                                    
  1881.     Sequence Processing
  1882.     ===================
  1883.  
  1884.     General
  1885.     -------
  1886.     In the File I/o panel, the control "Set Up Multi-frame Sequence"
  1887.     provides access to the sequence processor. This is a capability
  1888.     that allows you to select a group of images to be loaded (or you
  1889.     can select a single image to come from the secondary buffer),
  1890.     processed, and optionally resaved in either 24-bit IFF format or
  1891.     rendered to another display mode - or both.
  1892.  
  1893.     We strongly suggest you have the FilmStrip operating when you do
  1894.     sequence processing. This will allow you to see each frame as it
  1895.     is processed as a history, which is very enlightening. Also, if
  1896.     you elect to run the sequence without generating any output, you
  1897.     can use the filmstrip to examine the general effect to see if it
  1898.     was what you wanted.
  1899.     
  1900.     Processing is done using a very simplified form of an ARexx
  1901.     script, which can be as simple as three lines of text, or as
  1902.     complex as you like. The script you choose is executed once for
  1903.     each frame in the sequence - we'll show you how to do it here.
  1904.  
  1905.     It is very important that you take the time to look at the example
  1906.     scripts presented here, even if you are NOT an ARexx user; we have
  1907.     designed this capability so that you can use it VERY easily and if
  1908.     you elect to ignore it you're going to be shooting yourself in the
  1909.     foot - no kidding.
  1910.  
  1911.     Brief Description
  1912.     -----------------
  1913.     Essentially, multi frame sequence processing is broken up into two
  1914.     stages. First, you need to prepare a simplified ARexx script that
  1915.     will process your images in the fashion you desire. Second, you use
  1916.     the sequence processing control panel to select a set of images to
  1917.     apply these effects to; you also select what you want done with the
  1918.     results - save them as IFF, render them to a particular output mode,
  1919.     or discard them (this last is useful to test scripts to see if they
  1920.     have the desired effect).
  1921.  
  1922.     As we mentioned previously, we strongly suggest you leave the
  1923.     filmstrip turned on. One of the most revealing things you can do
  1924.     to a sequence to see if it's what you wanted is to animate it
  1925.     using the filmstrip. You can see if the results are smooth enough;
  1926.     if not, you should use more frames. Perhaps you'll determine that
  1927.     you can get away with fewer frames. Even if you got everything
  1928.     perfect on the first try, it's nice to have that confirmed by the
  1929.     filmstrip animation.
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.                                    -30-                                    
  1940.     We describe two example ARexx scripts in painstaking detail
  1941.     further on in this document; we'll begin with a description of the
  1942.     options available to you in the sequence control panel.
  1943.  
  1944.     Sequence Control Panel
  1945.     ----------------------
  1946.     This control panel presents you with two lists, one on each side
  1947.     of the display. The list on the left acts like a file requester;
  1948.     you use it to navigate through the Amiga's filesystem and choose
  1949.     files. Each file you choose from the left hand list is placed into
  1950.     the right hand list, which is the list of files that will be
  1951.     processed for this sequence. Below the lists are the name of the ARexx
  1952.     script that will be used to process each of the selected images, and
  1953.     the number of image files that have been selected for processing.
  1954.  
  1955.     Finally, at the bottom of the display are a set of controls which
  1956.     allow you to set up various items used in the sequence processing.
  1957.     Here is a description of each control:
  1958.  
  1959.     "Set Path" allows you to set the path where the list requester
  1960.     will begin looking for image files.
  1961.  
  1962.     "Parent" causes the left list requester to change directories to
  1963.     the parent directory of where it is currently located.
  1964.  
  1965.     "Set Script" allows you to specify up to four ARexx scripts to be used
  1966.     to process the sequence of images.
  1967.  
  1968.     "Save List" and "Load List" allow you to save and reload the
  1969.     right-hand list of images for later use.
  1970.     
  1971.     "Delete Entry" allows you to remove a particular image file from
  1972.     the right hand list after clicking on that entry.
  1973.  
  1974.     "Film" provides access to the filmstrip controls.
  1975.  
  1976.     "Run List" opens a new control panel where you specify the output
  1977.     filenames for the results of the sequence process operation; you
  1978.     can cancel out of this panel if needed, or you can execute the
  1979.     operation there. You can also use the secondary or primary buffer
  1980.     as the source for the operation, repeatedly.
  1981.  
  1982.     "Done" exits the sequence processing panel without actually doing
  1983.     a sequence.
  1984.  
  1985.     ARexx Script Particulars
  1986.     ------------------------
  1987.     There is one new command which must be used at the end of any
  1988.     script that is built for multi-frame processing. This command is
  1989.     'finish'; It tells the image processor that all operations in the
  1990.     script have completed, so another image may be loaded (or the
  1991.     operation can terminate, if the last frame has been processed. If
  1992.     you neglect to include the 'finish' command, only the first frame
  1993.     of the sequence will be processed.
  1994.  
  1995.  
  1996.  
  1997.  
  1998.                                    -31-                                    
  1999.     In addition to the 'finish'; command, we have provided the
  2000.     'tween'; command. You'll use it in scripts where you want various
  2001.     parameters to change from frame to frame. We'll show you how to
  2002.     use this command a little further on.
  2003.  
  2004.     For the user who really wants to get into the "nitty gritty" of
  2005.     working with these scripts, two arguments are always passed to the
  2006.     ARexx script which you may use if you like. The first argument is
  2007.     the current image number. In other words, if you have selected 20
  2008.     images to be processed, and this is the third image, then this
  2009.     argument will be "3". For a sequence of 20 images, the argument
  2010.     will go from 1 to 20; it will never be zero. The second argument
  2011.     passed is the total number of frames. In the example we explained
  2012.     just previously, the second argument would be 20. These two
  2013.     arguments can be used to control anything you can imagine, but
  2014.     require you to be fairly sophisticated in your script-writing. For
  2015.     the vast majority of users, the 'tween'; command will handle
  2016.     everything you need to do.
  2017.  
  2018.     Constant Effects Across Multiple Frames
  2019.     ---------------------------------------
  2020.     Here is a very simple example of how to apply a particular set
  2021.     (constant) effect across a sequence of images.
  2022.  
  2023.         /* SimpleSeq.rexx - minimal demonstration script */
  2024.         'entire';             /* specify do entire image */
  2025.         'contrast 50';        /* 50% contrast increase   */
  2026.         'finish';             /* mandatory final command */
  2027.  
  2028.     SimpleSeq.rexx is a good example showing just how really simple a
  2029.     script can be. It selects the region to be affected (the entire
  2030.     image), applies a 50% contrast to that region, then informs the
  2031.     image processor that it may proceed to the next image in the
  2032.     sequence. If you select 60 images, all of them will have this
  2033.     exact amount of increased contrast.
  2034.  
  2035.     Variable Effects Across Multiple Frames
  2036.     ---------------------------------------
  2037.     We'll look at how you might gradually apply the contrast effect
  2038.     over time now, using the 'tween'; command. The example script here
  2039.     has only three more lines than the example that showed you how to
  2040.     apply a constant level of contrast; this clearly shows how easy it
  2041.     is to create extremely powerful, perfectly sequenced effects
  2042.     automatically. If you've been avoiding ARexx, it's time to have
  2043.     some real fun!
  2044.  
  2045.     Here is the actual script, ready to use:
  2046.  
  2047.       /* Contrast.rexx - shows how to get varying effects across frames    */
  2048.       options results;     /* this tells IM, IMFC or IP to return "result" */
  2049.       'entire';            /* select entire image as operation target      */
  2050.       'tween 0 100';       /* get "tween" value into autovariable "result" */
  2051.       'contrast '||result; /* apply the tweened amount, changing smoothly  */
  2052.       'finish';            /* mandatory final command - end of script      */
  2053.  
  2054.                  <detailed explanation provided on next page>
  2055.  
  2056.  
  2057.                                    -32-                                    
  2058.     Here is a line by line explanation of the script.
  2059.  
  2060.     /* Contrast.rexx - shows how to get varying effects across frames */
  2061.     --------------------------------------------------------------------
  2062.     This line is an ARexx "comment". It serves two purposes here.
  2063.     First, the ARexx language says that the first line of an ARexx
  2064.     script MUST be a comment - so you have to at least put the comment
  2065.     delimiters in the first line, shown here...
  2066.                        /*    */
  2067.     ...or ARexx won't even attempt to execute the script. The other
  2068.     purpose is to inform you what the script is about. After all,
  2069.     since you are required to put the comment there, it might as well
  2070.     be useful, eh? Comment lines may appear anywhere and have no
  2071.     effect upon the actual operation of the script.
  2072.  
  2073.     options results;
  2074.     ----------------
  2075.     This is a command to the ARexx language itself which informs any
  2076.     program receiving a command (the image processor, in this case)
  2077.     that it is ok to return a value if a macro command is executed
  2078.     that should return one. If this line is not present, then you
  2079.     won't get a value back from the image processor. We need it here
  2080.     because the 'tween' command does need to return a result to the
  2081.     script (see the next explanatory paragraph for details on this).
  2082.  
  2083.     'entire';
  2084.     ---------
  2085.     This is a command to the image processor which tells it that the
  2086.     region we want to affect by the next process we execute is the
  2087.     entire image. You might have used 'oval' or 'rect' here instead,
  2088.     if you just wanted to contrast a portion of the image.
  2089.  
  2090.     'tween 0 100';
  2091.     --------------
  2092.     This command to the image processor is the key to easy variable
  2093.     processes over multiple frames. What it is saying is that over the
  2094.     course of this sequence, the starting value (for the first frame
  2095.     processed) is to be "0"; and the ending value (for the last frame
  2096.     processed) is to be "100". The tween command uses this information
  2097.     with internal information the image processor maintains about how
  2098.     many frames there are and which one is being processed now, to
  2099.     determine the appropriate value to return for this particular
  2100.     frame in the sequence - no matter what frame it is. The 'tween'
  2101.     command can start with a low value and go to a high one, or vice-
  2102.     versa. It can also handle negative numbers. For operations where
  2103.     there are multiple parameters, just use multiple 'tween' commands
  2104.     and put the "result" from each into it's own variable. The 'tween'
  2105.     command is simple, and very powerful.  Here are some examples...
  2106.     
  2107.         'tween -100 100'; var1 = result;
  2108.         'tween 100 0'; var2 = result;
  2109.         'tween -75 50'; var3 = result;
  2110.     
  2111.     ...now var1, var2 and var3 could be used later as different
  2112.     parameters for a script that needed several different values.
  2113.         
  2114.                      <explanation continued on next page>
  2115.  
  2116.                                    -33-                                    
  2117.     'contrast '||result;
  2118.     --------------------
  2119.     This is the actual command to the image processor which instructs
  2120.     it to apply a certain amount of contrast to the image of the
  2121.     sequence that is currently being processed. The image processor's
  2122.     contrast command can take values from -100 to 100, and the
  2123.     variable "result" contains a value within these limits, which we
  2124.     got from the 'tween' command.
  2125.     
  2126.     Note that the variable "result" is set whenever you call ANY
  2127.     command to the image processor after executing "options results",
  2128.     so it is constantly being reset to a new value. Often, the best
  2129.     course is to copy the value in "result" to a new variable, like
  2130.     we showed you in the explanation for the 'tween' command. Here's
  2131.     another example...
  2132.     
  2133.         'tween -25 25'; tweenvalue = result;
  2134.     
  2135.     ...where the semicolons serve to separate ARexx commands. The next
  2136.     command changing the contents of "result" won't unintentionally
  2137.     lose you your returned value here. In the script example, because
  2138.     we use "result" immediately after we get it from the 'tween'
  2139.     command, we don't need to copy it, it's still got the value we
  2140.     wanted in it. The dual vertical bars are a concatination operator;
  2141.     they "glue" text together. Let's say that the variable "result"
  2142.     contains the number "25". The result of this line will be sent to
  2143.     the image processor and it will look like this...
  2144.  
  2145.             contrast 25
  2146.  
  2147.     ...which is exactly what you want.
  2148.  
  2149.     'finish';
  2150.     ---------
  2151.     This line tells the image processor that the script is complete.
  2152.     The sequence processing then knows to go on and load the next
  2153.     frame to be worked upon, or to terminate if the last frame has
  2154.     been completed.
  2155.     
  2156.     Note that the scripts described here belong in the "Pre-Render" script
  2157.     entry. The other three script entries are used to control more complex
  2158.     batch operations.
  2159.  
  2160.                                  ----------
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.                                    -34-                                    
  2176.     Morphing
  2177.     ========
  2178.     The word conjures up pictures in the mind of something normal-looking
  2179.     twisting and turning, features running like wax and through some film-
  2180.     maker's voodoo, finally turning into... something else, maybe normal
  2181.     looking, but maybe not. Imagemaster can do every bit of that; and do it
  2182.     well, too.
  2183.     
  2184.     The process is not really very complex, either. The following section
  2185.     contains everything you need to understand how to use Imagemaster to
  2186.     create outstanding looking morphs, including two carefully constructed
  2187.     tutorials.
  2188.     
  2189.     We'll begin with a concise description of what we mean by morphing in a
  2190.     technical sense, and then go immediately into a pair of tutorials
  2191.     designed to get you going, quickly.
  2192.     
  2193.     Once you've been through the tutorials and have a basic understanding of
  2194.     how the morphing works, you can begin exploring all of the extra-special
  2195.     "extra" morphing tools available!
  2196.     
  2197.     What Morphing means
  2198.     -------------------
  2199.     The concept of "morphing images" has two meanings in Imagemaster:
  2200.     
  2201.         1 - Distorting a single image into a new image using positional
  2202.             control information supplied by the user. This is also known as
  2203.             "warping" an image, or "warp morphing".
  2204.     
  2205.         2 - Combining distortions of two images to form a new image, using
  2206.             color information from both source images, along with positional
  2207.             control information supplied by the user.
  2208.     
  2209.     Morphing can also be taken generally to mean the generation of a sequence
  2210.     of images using either method (1) or (2) as just discussed, instead of
  2211.     just a single image. Such a sequence provides a continuous (or as nearly
  2212.     so as possible) change from one image to the other when these images are
  2213.     played back in real time as in a video or a movie. If a sequence of
  2214.     images is desired as morph output, then the user can supply a second
  2215.     control element, timing, in addition to the positional controls.
  2216.     
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.                                    -35-                                    
  2235.     One further extension of these ideas is that of "Motion Morphing". The
  2236.     idea here is to create a series of morphs from a varying sequence of
  2237.     input images. An example of this would be two sets of 30 frames of two
  2238.     different people walking down a street, where the desired effect is to
  2239.     have one person change into the other during the (moving) 30 frames.
  2240.     This requires that you provide the two complete sets of images to be used
  2241.     as input to the morphing tools and then specify the control information
  2242.     that is needed to control the morph in a realistic manner.  This is
  2243.     perhaps the type of morph with the greatest complexity. It requires the
  2244.     most from the user in terms of setting up the input images for the best
  2245.     results, and then specifying the proper control information to the
  2246.     software.
  2247.  
  2248.     The morphing capability implemented in Imagemaster provides the tools to
  2249.     generate individual frames as needed, or a sequence of frames to your
  2250.     specifications using either of the two basic methods. Series of frames
  2251.     may be generated from either static (non-moving) images, or from
  2252.     sequences of pairs of images as motion morphs.
  2253.  
  2254.     When using Imagemaster to generate morphs from static images, you have
  2255.     excellent control over the three most important factors in the process:
  2256.  
  2257.         1 - Geometry    - Localized positional changes of the image surface
  2258.         2 - Colorimetry - Transparency changes between two images)
  2259.         3 - Velocity    - Rate of change of each localized positional change
  2260.     
  2261.     When using Imagemaster to generate motion morphs, in addition to the
  2262.     above three elements of the morph, you also have control over the the
  2263.     following additional issue:
  2264.     
  2265.         4 - Tweening    - Automatic generation of control information for
  2266.                           frames in which you have not specifically defined
  2267.                           controls.
  2268.  
  2269.     As mentioned previously, there are two kinds of morphing available in
  2270.     Imagemaster: single image (warp) morphing and dual image morphing. We'll
  2271.     talk about warp morphing first.
  2272.     
  2273.     A Tour of single-image morphing:
  2274.     ================================
  2275.     To access this operation, you'll need to load an image so that the
  2276.     process panel becomes available. You'll need an image of a face, viewed
  2277.     from the front to follow along with the examples presented here. Also,
  2278.     it's important to note that when we talk about right and left, we're
  2279.     talking about your right and left as the user of the software; not the
  2280.     right and left orientation as viewed from the perspective of the person
  2281.     in the image.
  2282.     
  2283.     Once you've loaded an image of a face, the Process button in the main
  2284.     panel becomes available. Press it; then press the "Special Effects"
  2285.     button, and finally the "Warp Morphing" button. You are now located in
  2286.     the Warp Morphing control panel.
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.                                    -36-                                    
  2294.     Warp morphing is the least complex of the various morphing operations,
  2295.     and working with it will provide a good general understanding of the
  2296.     basic tools available for all types of morphing within Imagemaster. The
  2297.     working area consists of two displays; one of images on a full-size Amiga
  2298.     screen, and one of controls, on a "short" Amiga screen.
  2299.  
  2300.         Useful Note: You can hide the control area at any time by pressing
  2301.                      the right mouse button. This allows you to see the
  2302.                      entire image display area.
  2303.  
  2304.     Looking at the image display area, you will see two greyscale, identical
  2305.     copies of the image in your primary buffer. These images are used to
  2306.     guide you in placing your control points and edges. Looking at the
  2307.     control panel, the button at the top left of the panel is a multiple-
  2308.     choice one with the following options:
  2309.     
  2310.         Add Points
  2311.         Delete Points
  2312.         Move Points
  2313.         Edges
  2314.  
  2315.     This is the "Mode" button. Click on the Mode button until it reads "Add
  2316.     Points". Now, using the mouse, point right at the center of the right eye
  2317.     and click once. You will see a small blue cross appear where you clicked.
  2318.     This is a "start" control point.  Look at the image to the right; you
  2319.     should see a control point in exactly the same location on that image -
  2320.     that is an "end" control point.
  2321.     
  2322.     Now, use the mouse to click on and drag the end control point in the
  2323.     right image somewhat off-center (if you're using a face as we suggested,
  2324.     drag it to the right of the eye about the width of the eye). What you
  2325.     have done is told Imagemaster that the part of the image identified by
  2326.     that control point on the left image (the starting point) is to be moved,
  2327.     or distorted, to the location indicated by the ending control point.
  2328.     
  2329.     Let's take a look and see what kind of results you get from this single
  2330.     control point. To see a preview of the morph result, click the button on
  2331.     the control panel which has the legend "Do 1 Frame". Imagemaster will ask
  2332.     you if you wish to save the changed control points; select "Proceed
  2333.     without saving". Now, you are presented with a panel which indicates the
  2334.     total number of frames, allows you to choose a particular frame, and has
  2335.     buttons for Preview, Cancel and Done in it.
  2336.     
  2337.     First, click on the Preview button so that it is selected. Then look at
  2338.     the frame number control - it tells you (underneath the text box) how
  2339.     many total frames there are. It might say 6, 15 or something else.
  2340.     Whatever this number is, enter it in the text box provided and press
  2341.     return.  If the numbers already match, then just press "Done".
  2342.     Imagemaster will now generate a preview image of the warp morph, using
  2343.     the single control point you placed to create a new image. A progresss
  2344.     bar will indicate how far the morph operation has to go to completion.
  2345.     When the morph completes, the preview image will be drawn in the bottom
  2346.     of the display area. To view it, press the right mouse button.
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.                                    -37-                                    
  2353.     Depending on just how far you moved the end point, the morphed image may
  2354.     look slightly distorted or very distorted.
  2355.     
  2356.     Now, add a second start point by clicking on the left image, and again
  2357.     move the corresponding end point. Put the new start point in the middle
  2358.     of the other (left) eye and drag the end point on the right frame to the
  2359.     left of the eye, again by about the width of the eye.
  2360.     
  2361.     Now, click on "Do 1 Frame", "Proceed without saving" and "Done".
  2362.     Imagemaster will re-generate the preview frame. When the morph is
  2363.     complete, use the right button to temporarily hide the control panel to
  2364.     see the new result.
  2365.     
  2366.     You should be getting the idea now; many unique and interesting warp
  2367.     morphs can be specified using control points just the way we've been
  2368.     showing you.
  2369.     
  2370.     Here's another way you can look at the motions implied by the control
  2371.     points you placed. Click on the button with the legend "Arc Vectors".
  2372.     Imagmaster will generate a new view of your image, with both the start
  2373.     and end points visible, and a "vector" connecting the two. Start points
  2374.     are indicated by the solid box end of the vector, and end points are
  2375.     indicated by the hollow box end of the vector. You should be able to
  2376.     imagine the direction of motion implied by these vectors without any
  2377.     problem here. For the moment, don't click on any points; although you can
  2378.     perform several types of operations in the vector display, we don't want
  2379.     to get into those at this point. When you're done looking at the vectors,
  2380.     press the button with the legend "Done" and you will be returned to the
  2381.     main editing display.
  2382.     
  2383.     Usually, a large number of control points are used to completely specify
  2384.     the exact distortions required. The more points you use, the better the
  2385.     resulting morph will be. For the best results, you would completely
  2386.     outline features you want to change (like the eyes) and then change the
  2387.     endpoints in the right-hand window to represent the new form you want the
  2388.     image to take. The right window contains the same image as the left so
  2389.     you have a reference of just how far to go, or how much distortion you
  2390.     want.
  2391.     
  2392.     We'll go through a quick example of this and in the process teach you how
  2393.     to use "edges" and a few more of the morphing tools.
  2394.     
  2395.     First, you'll want to delete the two points you've already placed. To do
  2396.     this, click on the button with the legend "Del All Points". You'll be
  2397.     asked if you want to save the points. Choose "Proceed without Saving" and
  2398.     the points will be removed.
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.                                    -38-                                    
  2412.     Next, since we're going to be doing a bit more exacting operation, let's
  2413.     zoom in on the area where we'll be working, the left eye. To zoom, first
  2414.     click on the button with the legend "Zoom". Now point about 1/2 inch
  2415.     above and to the left of the left eye, click the mouse and drag down and
  2416.     to the right. A box will appear; keep pulling until the box entirely
  2417.     encloses the eye (about 1/2 inch below and right) and then let go of the
  2418.     mouse button. The image will now be zoomed in. If the result is not to
  2419.     your liking, click on the Zoom button again and the zoom will be turned
  2420.     off. Repeat these steps, beginning with re-selecting the zoom button, to
  2421.     get a better zoom around the eye. When you have the eye nicely centered
  2422.     in a zoomed image, continue.
  2423.     
  2424.     The Mode control button should still read "Add Points". If it does not,
  2425.     click on it until it does. Now, point at the left image and drop points
  2426.     all around the edge of the eye. About 8 points should be fine. Looking
  2427.     at the right image, the same points should be visible; just leave them
  2428.     alone for the moment. When we do this, we place the points as follows;
  2429.     one at each corner of the eye; one directly above, and one directly below
  2430.     the pupil; and the final four, one at a time between the corners of the
  2431.     eye and the points by the pupil; The final placement looks somewhat like
  2432.     this:
  2433.     
  2434.                                       *
  2435.                                  *         *
  2436.                              *                 *
  2437.                                  *         *
  2438.                                       *
  2439.     
  2440.     Now we're going to add edges. Point at the Mode button again and click on
  2441.     it until it reads "Edges". In the left image, beginning with any point
  2442.     you like, click on each point in turn all the way around the eye. As you
  2443.     go, you'll see blue edges appear between each point. Continue until the
  2444.     eye is completely surrounded by edges. When you get to the last point,
  2445.     click on it twice to de-select it. Looking over at the end frame, you'll
  2446.     see the edges are there as well.
  2447.     
  2448.     Change the mode from "Edges" to "Move Points". In the end image, move
  2449.     each of the points in turn away from the eye - we're going to make the
  2450.     eye "swell up". Adjust each of the points in turn until the outline is
  2451.     about the same shape as the outline in the start (left) image, but
  2452.     larger. When you've got them adjusted to your satisfaction, click on the
  2453.     Arc Vectors button and take a look at the vectors and the edges. Remember
  2454.     that you can use the right mouse button to hide the control panel and
  2455.     reveal the entire image.  The vector format view may help you imagine
  2456.     what the results will be.  When you're done looking at the vectors, click
  2457.     on Done.
  2458.     
  2459.     Now in the main morphing panel, press "Do 1 Frame", "Proceed Without
  2460.     Saving" and Done. When the preview completes, you should have a nice
  2461.     image of a face with an enlarged eyeball staring at you.
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.                                    -39-                                    
  2471.     More complex morphs are usually made up of several regions such as the
  2472.     one you just created around the eye. As is the case with many things,
  2473.     even the most complex morph is the sum of a series of simpler operations.
  2474.     
  2475.     Have any Problems?
  2476.     ------------------
  2477.     If you didn't get the results described here, we suggest you go back and
  2478.     go through the tour again. Most likely, you've missed a step somewhere.
  2479.  
  2480.     Nuts and Bolts
  2481.     --------------
  2482.     Now that you've seen the morphing tool in operation, let's briefly go
  2483.     over what you did from a more specific, technical point of view.
  2484.     
  2485.     You placed "control points". These actually consist of two elements,
  2486.     "start" and "end" points. These specify an exact amount of movement for
  2487.     the point of the image which is exactly under that particular control
  2488.     point. Areas of the image which are not directly underneath a control
  2489.     point move in such a way as to agree with all the control points nearby;
  2490.     the closer a control point is to a portion of the image, the more the
  2491.     image will move in a manner similar to the motion of that point. Control
  2492.     points which are very far away from a location on an image will have
  2493.     little or no effect on that location.
  2494.     
  2495.     You also placed "edges". These are lines that go between two control
  2496.     points. They suggest to the software that no image information should
  2497.     "cross" the edges; while control points alone may not exactly control an
  2498.     area, the combination of edges and control points can create almost any
  2499.     needed distorting motion that is reasonable. 
  2500.     
  2501.     We brought up an interesting issue in the last paragraph - what kinds of
  2502.     motions are reasonable and what kinds are not? It is a fact that the
  2503.     kinds of motion that can be specified with control points and edges is
  2504.     nearly infinite, but not all of them are reasonable. Imagemaster has to
  2505.     attempt to keep the motions you specify for the image surface
  2506.     "connected", so that portions of the image flow together in a natural
  2507.     manner. It is possible to specify motions that cause tearing or "folding"
  2508.     of the image, though, and normally this will not be what you want.
  2509.     
  2510.     As you attempt more complex motions, you'll begin to encounter these
  2511.     situations.  To solve them, you can either eliminate the offending
  2512.     motions or try to be more specific in those regions by adding more
  2513.     control points and edges.
  2514.     
  2515.     Note that when we were discussing edges earlier, we said they "suggest"
  2516.     control.  This is because some types of edge combinations are impossible,
  2517.     such as where two edges cross each other, and edges in those situations
  2518.     will either be ignored or will cause image tearing and/or folding.  Odd
  2519.     things also happen when the vectors specified by control points cross
  2520.     each other. You can spot these easily by looking at your vectors in the
  2521.     Arc Vector panel. A good rule of thumb is to have as few as possible
  2522.     crossing vectors or edges in any morph you attempt to do.
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.                                    -40-                                    
  2530.     A Tour of dual-image morphing:
  2531.     ==============================
  2532.     Dual image morphing is available as a compose operation, under special
  2533.     compositions. In order to access it, you need to have two images loaded,
  2534.     one as the primary buffer and one as the secondary buffer. As always,
  2535.     if no secondary buffer has been specified, then the compose control panel
  2536.     will be inaccessable.
  2537.     
  2538.     To work through this tour with us, you'll need two images, each of a
  2539.     different face. They can be similar, like brothers, or they can be
  2540.     quite different, like a cow and a dog - just so they are faces viewed
  2541.     from the front. Note that we are assuming that you have already worked
  2542.     through the warp morphing tour - if you have not, please go back and do
  2543.     that first.
  2544.     
  2545.     Once you've loaded two images of a face, one as Primary and one as
  2546.     Secondary, the Compose button in the main panel becomes available. Press
  2547.     it; then press the "Special Compositions" button, and finally the
  2548.     "Morph" button. You are now located in the Morphing control panel.
  2549.     
  2550.     The working area again consists of two displays; one of both your images
  2551.     on a full-size Amiga screen, and one of controls, on a "short" Amiga
  2552.     screen.
  2553.  
  2554.     Looking at the image display area, you will see two greyscale images,
  2555.     one of your primary buffer and one of your secondary buffer.  These
  2556.     images are used to guide you in placing your control points and edges.
  2557.  
  2558.     Begin by clicking on the Set Controls button. When the new panel opens,
  2559.     you'll see a text entry field marked "Total Frames". If it does not read
  2560.     15, then click in this field with your left mouse button and replace
  2561.     whatever was there with 15. Now press Done. For the best results when
  2562.     testing a dual image morph, you should always have an odd number of
  2563.     frames; this is so that there is a frame number that is exactly in the
  2564.     "middle" of the sequence. For instance, an 8-frame morph has frames 4 and
  2565.     5, neither of which is in the middle; there is no middle frame.
  2566.  
  2567.     Back in the main morphing control panel now, click on the Mode button (at
  2568.     top left of the control panel) until it reads "Add Points".
  2569.     
  2570.     Let's zoom in on the area where we'll be working, the left eye. To zoom,
  2571.     first click on the button with the legend "Zoom". Now point about 1/2
  2572.     inch above and to the left of the left eye on the left (starting) image,
  2573.     click the mouse and drag down and to the right. A box will appear; keep
  2574.     pulling until the box entirely encloses the eye (about 1/2 inch below and
  2575.     right) and then let go of the mouse button. The image will now be zoomed
  2576.     in. If the result is not to your liking, click on the Zoom button again
  2577.     and the zoom will be turned off. Repeat these steps, beginning with re-
  2578.     selecting the zoom button, to get a better zoom around the eye. When you
  2579.     have the eye nicely centered in a zoomed image, continue.
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.                                    -41-                                    
  2589.     Now, because you are working with two completely different images, the
  2590.     image in the right (ending) frame may not be properly centered around
  2591.     its left eye after the zoom; we need to get it well-centered before we
  2592.     proceed. It's really very easy to do. First, press the "R" key on the
  2593.     keyboard. This tells Imagemaster to limit zooming and panning to the
  2594.     right (ending) frame only. Now, using the cursor key pad, pan the right
  2595.     frame around until the left eye of the ending image is entirely visible.
  2596.     If the eye is too large, you can press the "<." key on the keyboard to
  2597.     zoom out a bit; if it is too small, you can press the "<," key on the
  2598.     keyboard to zoom in a bit. When the right image's, left eye is well
  2599.     centered, continue.
  2600.     
  2601.     Click on the mode control button until it reads Add Points. Now, point at
  2602.     the left image's eye and drop points all around the edge of the eye, just
  2603.     as we did in the warp morph tour. And again, about 8 points should be
  2604.     just fine.  When we do this, we place the points as follows; one at each
  2605.     corner of the eye; one directly above, and one directly below the pupil;
  2606.     and the final four, one at a time between the corners of the eye and the
  2607.     points by the pupil; The final placement looks somewhat like this:
  2608.     
  2609.                                       *
  2610.                                  *         *
  2611.                              *                 *
  2612.                                  *         *
  2613.                                       *
  2614.     
  2615.     Looking at the right image, the same points will be visible, but they
  2616.     won't be correctly arranged around the right image's eye - that's because
  2617.     these are different eyes, unlike the warp morph, and Imagemaster can't
  2618.     know exactly what you're trying to do. So, it's your job to get those
  2619.     points arranged in just the same manner around this other eye. It should
  2620.     be very obvious what needs to be done - the points should be in the same
  2621.     relative positions as they are in the left frame. You can point and move
  2622.     the points in the right frame now, even though you are not in Move Points
  2623.     mode; Add Points works such that the left frame adds points and the right
  2624.     frame moves points. By the way, if you need to adjust any of the points
  2625.     in the left frame, change the mode button to read Move Points and you can
  2626.     do it easily.  When you have the points arranged around both left eyes to
  2627.     your satisfaction, continue.
  2628.     
  2629.     Now we're going to add edges, again, just as we did for the warp morph
  2630.     tour. Point at the Mode button again and click on it until it reads
  2631.     "Edges". In the left image, beginning with any point you like, click on
  2632.     each point in turn all the way around the eye. As you go, you'll see blue
  2633.     edges appear between each point. Continue until the eye is completely
  2634.     surrounded by edges. When you get to the last point, click on it twice to
  2635.     de-select it. Looking over at the end frame, you'll see the edges are
  2636.     there as well.
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.                                    -42-                                    
  2648.     When you've got the entire group of points connected with edges, click on
  2649.     the Arc Vectors button and take a look at the vectors and the edges.
  2650.     Remember that you can use the right mouse button to hide the control
  2651.     panel and reveal the entire image.  Note that there is a new control in
  2652.     the Arc Vectors window which allows you to set the amount of the start
  2653.     and end images visible called "Show Through". Play with the control until
  2654.     you can see a nice mix of both images. The vector format view may help
  2655.     you imagine what the results of the morph will be.  When you're done
  2656.     looking at the vectors, click on Done.
  2657.     
  2658.     Now, click on the Zoom button to turn off the zoom, then click it once
  2659.     more to allow you to zoom in a new area. This time, zoom the right eye of
  2660.     the left image. Once you have it positioned properly, press "R" on the
  2661.     keyboard and pan the right image so it's right eye shows also. Now,
  2662.     simply repeat the process of adding points to the left image's eye,
  2663.     moving the points on the right image's eye to match up, and then adding
  2664.     edges. You should be familiar with the methods needed to do this; if you
  2665.     have problems, refer to the preceeding paragraphs for more detail on what
  2666.     controls to select, and when. When you have the right eye set up,
  2667.     continue.
  2668.     
  2669.     Now in the main morphing panel, press "Do 1 Frame", and "Proceed Without
  2670.     Saving". Make sure the Preview button here is selected. If it is not,
  2671.     click on it once to select it. Now, you need to pick the middle frame of
  2672.     the total number of frames. The panel should indicate there are 15
  2673.     frames, click in the text entry field, type the number 8, and press
  2674.     return. When you press return, the morph is generated.
  2675.     
  2676.     When the preview completes, you should have an image of the two faces
  2677.     mixed together, with the eyes tied perfectly together. You'll note that
  2678.     the rest of the face(s) are not perfectly matched up; that's because you
  2679.     don't have control points specified for the various matching features.
  2680.     The more features you tie together, the better the overall morph will
  2681.     look.
  2682.     
  2683.     More complex morphs are usually made up of several regions such as the
  2684.     ones you just created around the eyes. As is the case with many things,
  2685.     even the most complex morph is the sum of a series of simpler operations.
  2686.     
  2687.     To continue learing, we suggest that you work to make the rest of the
  2688.     features match up. You should be able to get the morph completely matched
  2689.     just using the techniques we've gone over - have fun!
  2690.     
  2691.     Have any Problems?
  2692.     ------------------
  2693.     If you didn't get the results described here, we suggest you go back and
  2694.     go through the tour again. Most likely, you've missed a step somewhere.
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.                                    -43-                                    
  2707.     More Help
  2708.     =========
  2709.     As you can see, the term "morphing" covers a lot of ground. We have
  2710.     attempted to make Imagemaster's morph tools both comprehensive and easy
  2711.     to use. However, should you find some portion of the process particularly
  2712.     difficult and not well explained by the documentation, please don't
  2713.     hesititate to call the user support line for help. Technical support is
  2714.     available from 9am to 5pm MST, excluding an hour between noon and 1pm, at
  2715.     (406) 367-5509. You must be a registered user to obtain technical
  2716.     support, of course.
  2717.  
  2718.  
  2719.     Single Image Morphing Tools Reference
  2720.     =====================================
  2721.     The following information details the capabilities of the tools available
  2722.     to you when using the Warp Morphing operation. Note that not all morphing
  2723.     tools are usable when creating single-image warps. Note also that the
  2724.     explanations provided here for dual-image morphing may look similar to
  2725.     those provided for warp morphing, but there are a number of key
  2726.     differences in many areas of the text. We felt it would be better to
  2727.     present the explanations separately than to provide one explanation with
  2728.     dozens of parenthetical notes.
  2729.     
  2730.     Quick Reference to Warp Morphing
  2731.     ================================
  2732.     
  2733.     Convenient Misc. User Interface Operations
  2734.     - - - - - - - - - - - - - - - - - - - - - -
  2735.    Right mouse button - hides control panel, then brings it back
  2736.         backspace key - demotes a single curve to vector or vector to point
  2737.             FilmStrip - automatically loaded, if enabled by user
  2738.     
  2739.     User Interface Modes (Cyclic button, 4 states):
  2740.     - - - - - - - - - - - - - - - - - - - - - - - -
  2741.            Add Points - Add start and end control points
  2742.         Delete Points - Remove previously added control points
  2743.           Move Points - Move previously added control points
  2744.                 Edges - Add or Remove edges to control point pairs
  2745.     
  2746.     Set Controls
  2747.     - - - - - - 
  2748.          Total Frames - Set # of frames in the morph
  2749.                 X Res - Horizontal output frame resolution
  2750.                 Y Res - Vertical output frame resolution
  2751.   Enhanced Anti-Alias - Higher quality output images (slower generation)
  2752.         FilmStrip Res - Set X Res & Y Res to same as FilmStrip
  2753.              Set View - Set brightness and contrast for work images
  2754.        Opening Script - ARexx script runs once, before any frames created
  2755.     Pre-Render Script - ARexx script runs before each frame is created
  2756.    Post-Render Script - ARexx script runs after each frame is created
  2757.        Closing Script - ARexx script runs once, after all frames were created
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.                                    -44-                                    
  2766.     Lock Edges
  2767.     - - - - - 
  2768.                    On - Images stretch at the edges
  2769.                   Off - Images pull in black at the edges
  2770.  
  2771.     Shape Add
  2772.     - - - - -
  2773.         Without Edges - Adds points and edges in custom shapes
  2774.            With Edges - Adds points only in custom shape
  2775.           Big C/R key - Drops second copy of shape exactly where first is
  2776.     
  2777.     Drop Grid
  2778.     - - - - -
  2779.         Without Edges - Drop array of control points
  2780.            With Edges - Drop control points and edges as well
  2781.           Big C/R key - Drops second grid exactly where first is
  2782.  
  2783.     Load Points
  2784.     - - - - - -
  2785.         Loads sets of control points, edges, velocity curves, transparency 
  2786.         curves. New sets may be added to the current set or they may replace
  2787.         the current set.
  2788.  
  2789.     Save Points
  2790.     - - - - - -
  2791.         Saves complete sets of points, edges, velocity curves, transparency
  2792.         curves.
  2793.  
  2794.     Delete All Points
  2795.     - - - - - - - - -
  2796.         Removes all points, the edges associated with the points, and the
  2797.         associations between the points and the two types of curves.
  2798.  
  2799.     Zoom
  2800.     - - -
  2801.                 Mouse - pull out rectangle in either image
  2802.                 R key - limit panning to Right frame only
  2803.                 L key - limit panning to Left frame only
  2804.                 B key - panning/zooming enabled in Both frames
  2805.                 > key - increase zoom level
  2806.                 < key - decrease zoom level
  2807.  
  2808.     Arc Vectors
  2809.     - - - - - -
  2810.                  Lace - use interlace working area
  2811.                 S Con - Start image contrast (does not affect image data)
  2812.                 S Bri - Start image brightness (does not affect image data)
  2813.           Show Singly - Show one path (vector or curve) at a time
  2814.            Show Edges - Any edges defined are made visible
  2815.                  Zoom - Turns zoom on and off as per main panel
  2816.                  
  2817.             Curve Handle Mode (Cyclic button, 3 states)
  2818.             - - - - - - - - - - - - - - - - - - - - - -
  2819.                 I Bracket - single line to center of curve
  2820.                 V Bracket - dual lines to ends of curves
  2821.                No bracket - handle "floats" near curve
  2822.  
  2823.  
  2824.                                    -45-                                    
  2825.     Set Velocities
  2826.     - - - - - - - 
  2827.                Load Curve - Load a previously saved velocity curve
  2828.                Save Curve - Save a velocity curve
  2829.        Create a new curve - Add a curve to the loaded library by hand
  2830.            Choose a curve - Pick a curve from the loaded library
  2831.                Curve Name - Name the current curve being edited
  2832.   Vertical Graph Markings - frame indicators, number = frames
  2833. Horizontal Graph Markings - Undershoot and Overshoot range controls (movable)
  2834.  
  2835.     Pnt Vel
  2836.     - - - -
  2837.     Selects a velocity curve for a single point from the loaded set
  2838.  
  2839.     Group Operations
  2840.     - - - - - - - - 
  2841.        Set Group Velocity - selects a velocity curve for a group of points
  2842.              Demote Group - changes curves to vectors or vectors to points
  2843.              Delete Group - Removes multiple points and associated edges
  2844.  
  2845.     Swap Points
  2846.     - - - - - -
  2847.         Swaps points and edges and associations; in case images are reversed
  2848.  
  2849.     Lace
  2850.     - - -
  2851.         use interlace work display for main editing area
  2852.  
  2853.     Show Edges
  2854.     - - - - - -
  2855.         Show any edges that are defined
  2856.  
  2857.     Motion Control
  2858.     - - - - - - - 
  2859.              Motion Morph - Enables motion mode controls
  2860.              Project Name - Allows you to set a custom name for project
  2861.                    Frames - Specifies total # frames in project
  2862.                   Current - Pick a new frame to work on
  2863.               From Frames - Select set of from frames
  2864.                 To Frames - * Not used in Warp Morphing
  2865.               Go To Start - Go to frame 1 of morph, load images, etc
  2866.              Go To Finish - Go to last frame of morph, load images, etc
  2867.              Load Project - Load previously saved project
  2868.              Save Project - Save the current project
  2869.              ----------------------------------------
  2870.              These next two really belong in Group Ops... sorry!
  2871.              ----------------------------------------
  2872.               Move + Size - select group of points and scale, translate
  2873.             Move + Rotate - select group of points and rorate, translate
  2874.  
  2875.     Film
  2876.     - - -
  2877.         Use filmstrip player. (You must turn on film in display panel)
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.                                    -46-                                    
  2884.     Do Seq
  2885.     - - - -
  2886.                      Path - set path for files to go to
  2887.                      Name - set name for files (number is added)
  2888.                 Extension - set extension for files
  2889.            Starting Frame - frame to begin generating with
  2890.          End Frame of (n) - frame to end generation with
  2891.            Render Results - use Imagemaster rendering as output file
  2892.            Save as 24-bit - use Imagemaster 24-bit save as output file
  2893.    Test Run (Do Not Save) - generate only to filmstrip
  2894.                    Cancel - never mind...
  2895.                      Done - generate sequence now
  2896.  
  2897.     Do 1 Frame
  2898.     - - - - - -
  2899.     Frame Number (Of (n)) - which frame to generate: <enter> = Do it
  2900.                   Preview - make 320x200 preview image in morph panel
  2901.                    Cancel - never mind...
  2902.                      Done - Do it
  2903.  
  2904.     Detailed Warp Morphing Reference
  2905.     ================================
  2906.  
  2907.     Warp Morphing and Frames
  2908.     ------------------------
  2909.     When we speak of frames with regard to warp morphing, we are referring to
  2910.     the concept that many morphs are intended to be animated. Because of
  2911.     this, the morphs would be performed over a series of intermediate frames
  2912.     where the effect is slightly more apparent in each of the frames. For
  2913.     instance, when someone says thay are creating a 15-frame warp morph, the
  2914.     idea they are conveying is that in frame 15, the effect of the morph is
  2915.     fully apparent. In frame 8, the middle frame, the effect would be 50% of
  2916.     the final result, and so on for each intermediate frame. When a sequence
  2917.     of frames are rendered, the "flow" of the surface of the image under
  2918.     control of the points and edges is apparent as the frames are viewed in
  2919.     series.
  2920.     
  2921.     When the object of the morph is a single final image and not a sequence
  2922.     of images, the convention is to assume that the desired image is the
  2923.     final image of a sequence (of any length). As an example, if Imagemaster
  2924.     has been set for a 17-frame sequence, rendering frame 17 will provide a
  2925.     result with the effect 100% apparent. Imagemaster allows you to choose a
  2926.     frame from anywhere within the currently set sequence length when you
  2927.     render a single frame instead of a sequence of frames. Simply remember
  2928.     that when you are creating a single warped image you should set the frame
  2929.     to be rendered to be the same as the length of the sequence. This is done
  2930.     in the "Do 1 Frame" control panel, which is described in more detail
  2931.     further on in this document.
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.                                    -47-                                    
  2943.     Points
  2944.     ------
  2945.     Control points are used to define the flow of the image surface over the
  2946.     frames of a morph; when the object is one single warped image instead of
  2947.     a sequence, you should still think of the control points this way - it's
  2948.     just that you're only interested in the last frame of the sequence. The
  2949.     start point defines the portion of the image that will be moved, and the
  2950.     end point defines the location for that portion of the image for the
  2951.     final frame of the morph.
  2952.     
  2953.     Control points can be thought of in two ways. First, and most
  2954.     conveniently, as a series of pairs of points, just as you see them in the
  2955.     main dual-window interface.
  2956.     
  2957.     Secondly, you can consider the two points as the endpoints of a path,
  2958.     over which the image must "flow" to accomplish the changes you are
  2959.     specifying with the points. You can actually see these paths in the Arc
  2960.     Vectors window.
  2961.     
  2962.     It is not strictly correct to think of control points as the endpoints of
  2963.     vectors, for Imagemaster can make the course between the two points a
  2964.     complex curve instead of a straight line. That is why you should think of
  2965.     them as paths, rather than vectors. The default course between two points
  2966.     is a straight line (vector). Extension from a vector to a more complex
  2967.     path is done in the Arc Vectors interface, where you can "grab" the
  2968.     vector and shape it into a curve. This is described in more detail in the
  2969.     portion of this document that describes the Arc Vectors control panel.
  2970.     
  2971.     Placement of points should be done such that they are deposited at all
  2972.     key corresponding locations on the image surface. If we take the case of
  2973.     a face as an example, the corners of the eyes and mouth are obvious
  2974.     candidates. In addition, placement of points regularly along the edge of
  2975.     the profile will help control the image more exactly.
  2976.     
  2977.     Points are never discarded by Imagemaster's morphing procedures, even if
  2978.     they are defined in a conflicting manner. For this reason, you need to be
  2979.     careful that you do not place your points in such a way as to cause a
  2980.     conflict - one example of this is when the paths of two points cross each
  2981.     other during the course of a morph. This, and similar situations, will
  2982.     create folding and/or tearing in the image. Often you will find it easy
  2983.     to determine if such a condition exists by observing the paths defined by
  2984.     the endpoints in the Arc Vectors interface.
  2985.     
  2986.     Points cannot completely restrain an image, because they only exactly
  2987.     control the portion of the image directly underneath where they are
  2988.     placed. Areas of the image which are not directly underneath a point (or
  2989.     an edge) are adjusted according to the motions of the points which are
  2990.     nearest. Even points which are quite far away may add motion to an
  2991.     otherwise uncontrolled region.  When a portion of an image needs more
  2992.     exact control, you should use points in conjunction with edges, described
  2993.     next.
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.                                    -48-                                    
  3002.     Edges
  3003.     -----
  3004.     Edges are similar to points in that they specify movement for the surface
  3005.     of the image. They differ in that they control a much larger region, the
  3006.     entire area exactly under the line.
  3007.     
  3008.     Edges also differ in that Imagemaster's morphing procedures may discard
  3009.     an edge under certain circumstances, such as when two edges are defined
  3010.     that cross each other. When creating edges, you should take care to
  3011.     ensure that you do not create a situation like this, as the results are
  3012.     undefined and will result in the image tearing or folding.
  3013.     
  3014.     Placement of edges should generally be done along lines in the image such
  3015.     as the edges of eyes or a profile. They will restrict the motion of the
  3016.     image surface such that it will not transfer image data across the line,
  3017.     retaining colors precisely within the regions which are bounded by edges.
  3018.     Most high-quality morphs will use almost as many edges as they do points.
  3019.     
  3020.     Morphing Time
  3021.     -------------
  3022.     The time it takes Imagemaster to generate morph output frames is based
  3023.     almost entirely upon the size of the output images in the sequence. Anti-
  3024.     aliasing also adds a certain amount of time to the generation of each
  3025.     frame, again directly proportional to the size of the output image. A
  3026.     small amount of additional time is needed to compute frames that contain
  3027.     custom point-velocity computations.  The size of the input images has no
  3028.     effect (and they may even be different resolutions, also with no effect
  3029.     on time); Imagemaster always scales images as needed during operations.
  3030.     
  3031.     Operating Modes
  3032.     ---------------
  3033.     Operating mode is set by the four-state button at the upper left of the
  3034.     main morphing control panel. Clicking on this button with the mouse will
  3035.     cycle it through its four states: Move, Add, Delete and Edges.
  3036.     
  3037.     Move Points
  3038.         When Move Points mode is active, clicking in either the left window
  3039.         (start points) or the right window (end points) selects the nearest
  3040.         point to the mouse pointer; dragging the mouse with the left button
  3041.         held down also drags the selected point.
  3042.     
  3043.     Add Points
  3044.         When Add Points mode is active, clicking in the left window (start
  3045.         points) places points.  Once a point has been placed in the left
  3046.         window, the corresponding end point appears in exactly the same
  3047.         relative position in the right window. While in Add Points mode, you
  3048.         can also adjust the position of any point in the right (end points)
  3049.         window, which remains in Move Points mode - this is done so that you
  3050.         can naturally add and adjust points. One consequence of this
  3051.         organization is that you cannot add points by clicking in the right
  3052.         window.
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.                                    -49-                                    
  3061.     Delete Points
  3062.         When Delete Points mode is active, clicking on a point in either the
  3063.         left (start points) or right (end points) window removes that point.
  3064.         Any edges that were attached to that point are also automatically
  3065.         deleted.
  3066.     
  3067.     Edges
  3068.         When Edges mode is initially made active, any point that was selected
  3069.         is automatically de-selected.
  3070.         
  3071.         To add an edge, first select (by clicking upon) the point where the
  3072.         edge is to begin in either window.  Next, select the point where the
  3073.         edge is to end in either window. The edge will be created at this
  3074.         point; also, the last point you clicked on is now the current point,
  3075.         so to create the next in a series of linked edges, just click on the
  3076.         next point in turn. When you have completed a series of edges,
  3077.         remember to click one more time on the last point to deselect it. If
  3078.         you forget this step, the next point you click on will inconveniently
  3079.         connect to this one.
  3080.         
  3081.         To delete an edge, click on one of the points attached to that edge.
  3082.         Next, click on the other point attached to that edge; the edge will
  3083.         be removed. Remember to click again upon the last point to deselect
  3084.         it unless you are continuing edge creation/deletion from that point.
  3085.     
  3086.     Set Controls
  3087.     ------------
  3088.     Total Frames
  3089.         The Total Frames entry box is used to set the total number of frames
  3090.         in a morph sequence. If you wanted to create a 30-frame morph, you
  3091.         would enter the number 30 in this box before attempting to generate
  3092.         any frames.
  3093.     
  3094.     X Res and Y Res
  3095.         These two entry boxes set the output resolution of the morph frames
  3096.         that are to be generated in all cases except for single-frame preview
  3097.         generation. Preview frames are automatically generated at 320x200
  3098.         resolution and do not affect the resolution settings made here. The
  3099.         time it takes Imagemaster to generate morph frames is based almost
  3100.         entirely upon the size of the output frame, so if time is a
  3101.         consideration, you may want to generate a lower-resolution morph
  3102.         output.
  3103.     
  3104.     Enhanced Anti-Alias
  3105.         This button, when selected, causes Imagemaster's morphing procedures
  3106.         to use special smoothing methods during the generation of the output
  3107.         frames of a morph. The result is always a better image, however this
  3108.         can add considerably to the completion time of each frame to be
  3109.         generated.
  3110.     
  3111.     Filmstrip Res
  3112.         This button provides a convenient way for you to setup the exact
  3113.         resolution required to generate frames that fit perfectly within the
  3114.         filmstrip. It automatically loads the X Res and Y Res text fields
  3115.         with 96 and 60, the X and Y resolution of the filmstrip.
  3116.  
  3117.  
  3118.  
  3119.                                    -50-                                    
  3120.     Set View
  3121.         Set View allows you to set the brightness and/or contrast of the
  3122.         image being warped. The purpose of this is to allow you to work on
  3123.         images which may not provide enough detail in the morph area without
  3124.         some enhancement. Adjusting either the brightness or contrast here
  3125.         does not modify the image itself, only the display routines in the
  3126.         morphing procedures are affected so you can use them without concern.
  3127.  
  3128.     ARexx Scripts
  3129.         The morphing tools have the ability to call ARexx scripts before,
  3130.         during and after the generation of a sequence of output frames. One
  3131.         use of this capability is to take rendered output from Imagemaster
  3132.         and use it to create an animation directly as each frame is produced,
  3133.         and then automatically delete the individual frames. In order to do
  3134.         this, fill in the script entry fields as follows:
  3135.         
  3136.                 Opening Script:   rxpi:animwr1.rexx
  3137.              Pre-render Script:
  3138.             Post-render Script:   rxpi:animwr3.rexx
  3139.                 Closing Script:   rxpi:animwr4.rexx
  3140.         
  3141.         Remember that if there are any scripts in these fields, they will
  3142.         automatically be called. If you're not using ARexx scripts, be sure
  3143.         to delete the contents of these four fields to avoid problems.
  3144.  
  3145.     Opening Script
  3146.         The Opening Script text entry field is used to contain the full path
  3147.         and name of an ARexx script that will be executed once, before any
  3148.         frames are generated. For example, when generating animations, the
  3149.         Opening Script text entry field should be filled in with
  3150.         "rxpi:animwr1.rexx" (without the quotes).
  3151.     
  3152.     Pre-render Script
  3153.         The Pre-render Script text entry field is used to contain the full
  3154.         path and name of an ARexx script that will be executed just before
  3155.         each frame in the sequence is generated.
  3156.     
  3157.     
  3158.     Post-render Script
  3159.         The Post-render Script text entry field is used to contain the full
  3160.         path and name of an ARexx script that will be executed just after
  3161.         each frame in the sequence is generated. For example, when generating
  3162.         animations, the Post-render Script text entry field should be filled
  3163.         in with "rxpi:animwr3.rexx" (without the quotes).
  3164.     
  3165.     Closing Script
  3166.         The Closing Script text entry field is used to contain the full path
  3167.         and name of an ARexx script that will be executed once, after all
  3168.         frames have been generated. For example, when generating animations,
  3169.         the Closing Script text entry field should be filled in with
  3170.         "rxpi:animwr4.rexx" (without the quotes).
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.                                    -51-                                    
  3179.     Lock Edge
  3180.     ---------
  3181.     The Lock Edge button, when selected, causes the very edges of the image
  3182.     to be "pinned down". This usually provides better results in the final
  3183.     morph. In some cases it may be better to let the edges float. We suggest
  3184.     that normally you leave this selected, and only if you are having
  3185.     problems with the edges of a morph should you de-select it.
  3186.     
  3187.     Shape Add
  3188.     ---------
  3189.     The Shape Add facility uses IShapes, Imagemaster's unique custom shape
  3190.     definitions. IShapes are essentially complete pre-defined shapes,
  3191.     circles, lines and so on. These shapes are selected from a file requester
  3192.     and then placed on the the image to be warped using the mouse. IShapes
  3193.     may be moved and scaled during placement, a feature that makes them ideal
  3194.     for surface control in morph applications.
  3195.     
  3196.     The procedure for adding an IShape is to select the shape from the list
  3197.     in the file requester; place the IShape on the starting image, and then
  3198.     place the IShape on the ending image. You have the opportunity to move
  3199.     and size during both placements. One extra feature is the convenient
  3200.     immediate-drop capability; just press the newline key on the keyboard and
  3201.     the second IShape is dropped exactly in the same location as the first
  3202.     IShape. This is useful for "locking down" regions of the image.
  3203.     
  3204.         Step by Step use:
  3205.         - - - - - - - - -
  3206.         (1) When in morph hit the 'Shape Add' button.
  3207.  
  3208.         (2) Use the requestor to choose an ISHAPE or cancel to retain
  3209.             the current one.
  3210.             
  3211.             (Ovals/polygons with 3 to 95 points/sides are supplied in
  3212.             the IShapes drawer.)
  3213.  
  3214.         (3) Click and drag with the left mouse button in either view
  3215.             area to size and position the shape over the feature you
  3216.             want.  Holding down the right mouse button at the same time
  3217.             will move the shape.
  3218.  
  3219.         (4) When you release the left mouse button, the shape will be 
  3220.             duplicated in the other view area.
  3221.             The shape has an orientation arrow shown on it.  
  3222.             Click with the left mouse button in this other view area and
  3223.             position it on the matching feature.
  3224.             Its orientation arrow will follow the cursor. You should make
  3225.             the arrow point the same way in each view, because Morph is
  3226.             going to use each corner in order.
  3227.  
  3228.         (5) When you release the left mouse button this time, morph control
  3229.             points will be placed at the corners of the shape.
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.                                    -52-                                    
  3238.     Add Edges + Points / Just Points
  3239.         When adding an IShape, you will be asked if you want just the points
  3240.         that make up the shape, or edges as well. We find that we almost
  3241.         always want the edges - and if that is not the case, it is easy to
  3242.         delete the edges you don't need after the shape has been added.
  3243.     
  3244.     Drop Grid
  3245.     ---------
  3246.     Dropping grids work in many ways similar to IShapes. You have the
  3247.     opportunity to select either a rectangular region or the entire image. If
  3248.     you select the entire image, the grid is dropped evenly over the image
  3249.     without any further control from you. If you select rectangular area,
  3250.     then you get to place the grid just as if it was an IShape, with all the
  3251.     repositioning and immediate-drop capabilities.
  3252.     
  3253.     You may add grids with or without edges, and you can set the number of
  3254.     horizontal points and vertical points independantly of each other.
  3255.     
  3256.     Load Points
  3257.     -----------
  3258.     Load Points gives you the ability to load a previously saved set of
  3259.     points in at a later date than the session during which they were
  3260.     designed. Loading points gives you more, however - it also provides a way
  3261.     to work on a morph in sections.
  3262.     
  3263.     For instance, in some complex morphs you may have points and edges
  3264.     defined for many different regions of the image; it may be more
  3265.     convenient to work only on those points without having all the other
  3266.     points around to distract you.
  3267.     
  3268.     If you'd like to do this, simply save each set as you create them under a
  3269.     new name and then delete all the points before moving on to the next set
  3270.     to be generated.  Then, which it comes time to assemble all the points,
  3271.     simply load each individual set and select "Add To Current Set" for each
  3272.     one. Once you've loaded all the point sets, simply proceed with the morph
  3273.     generation. You can save all the points together at this time also, if
  3274.     you like. Imagemaster doesn't care one way ot the other - it's very
  3275.     flexible in this regard.
  3276.  
  3277.     When loading a new set of points, if points already exist in the image
  3278.     you will be given an opportunity to save them before loading the new set.
  3279.     If you're going to add to the current set. select "discard current set",
  3280.     which simply means that you're willing to have the current set modified
  3281.     by the new set you are loading in.
  3282.  
  3283.     Save Points
  3284.     -----------
  3285.     This operation is very simple. It simply saves everything about the
  3286.     current set of points - the points and edges, any velocity or
  3287.     transparency information that has been applied to them and so on. You
  3288.     should save your work often to prevent accidents from losing what may be
  3289.     a creative stroke of genius.
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.                                    -53-                                    
  3297.     Del All Points
  3298.     --------------
  3299.     This operation deletes all the point, edge, velocity and transparency
  3300.     information that is currently defined.
  3301.     
  3302.     Zoom and Pan
  3303.     ------------
  3304.     Imagemaster's morphing tools have extremely flexible and powerful zooming
  3305.     and panning capabilities. Not only can you get in close and pan around,
  3306.     but you can pan the two images independantly of each other, which allows
  3307.     you to get at both ends of even highly separated control points. Zoom
  3308.     levels are kept the same between the main interface and the Arc Vectors
  3309.     interface. This allows you to go back and forth quickly and with a
  3310.     minimum of disorientation.
  3311.     
  3312.     To zoom with the mouse, press the Zoom button so that it is selected. now
  3313.     simply drag out a rectangle with the mouse. Drag using the left button
  3314.     only. If, while dragging with the left mouse button, you depress the
  3315.     right mouse button as well, the rectangle will stop sizing and begin to
  3316.     move around. You can go back and forth between sizing and moving until
  3317.     the rectangle surrounds the area of interest - then release any mouse
  3318.     buttons you are holding and the area will be zoomed. You may zoom in as
  3319.     close as 8 pixels for placement of control points with sub-pixel accuracy.
  3320.     
  3321.     To unzoom, simply click on the Zoom button so that it unselects and the
  3322.     images will be redrawn normal size.
  3323.  
  3324.     You may also use keyboard commands to zoom. Keystroke commands are
  3325.     asynchronous so that you can pan and zoom at near real-time speed, even
  3326.     though the zoom or pan has not completely redrawn. The following
  3327.     keystrokes are available:
  3328.  
  3329.         Press the "<" key to decrease zoom 25%
  3330.         Press the ">" key to increase zoom 25%
  3331.         
  3332.         Press the "R" key to restrict zoom key commands to start frame
  3333.         Press the "L" key to restrict zoom key commands to end frame
  3334.         Press the "B" key to allow zoom key commands in both frames
  3335.         
  3336.         Press the left cursor pad to.... pan left
  3337.         Press the right cursor pad to... pan right
  3338.         Press the up cursor pad to...... pan up
  3339.         Press the down cursor pad to.... pan down
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.                                    -54-                                    
  3356.     Arc Vectors
  3357.     -----------
  3358.     The Arc Vectors interface provides another way to look at the control
  3359.     points and edges which together define the warp effect you want to take
  3360.     place on the surface of the image.
  3361.     
  3362.     In the Arc Vectors interface, start control points are shown as solid
  3363.     red boxes; end control points are shown as hollow red boxes; and the
  3364.     paths between them are shown as blue lines, except when the path is
  3365.     selected, in which case it is shown as a dashed white and blue line.
  3366.     
  3367.     You'll notice an additional symbol, that of a hollow red triangle in the
  3368.     center of each line. This triangle is a "handle" you can pull on if you
  3369.     would like to extend the path from a vector (straight line) to a more
  3370.     complex curved shape.
  3371.     
  3372.     You can also "demote" any path from a curve to a vector by first
  3373.     selecting either end of the path and then pressing the "backspace" key.
  3374.     If the path was a curve, you'll be asked if you want to demote it to a
  3375.     vector; if it was a vector, you'll be asked if you want to demote it to a
  3376.     point (where the start and endpoints are in the same location). You'll
  3377.     also have the opportunity to cancel if you change your mind for any reason.
  3378.     
  3379.     When a path is a curve, as a convenience you can select three types of
  3380.     representations to link the triangular handle with the path;
  3381.     
  3382.         "No Bracket" - where the triangle "floats" near the vector
  3383.         "I Bracket"  - where the triangle is attached by a straight line
  3384.         "V Bracket"  - where the triangle is attached by two lines
  3385.  
  3386.     You may select either all paths visible at once, or "Show Singly", where
  3387.     only one path at a time is visible. You use the left and right cursor
  3388.     keys to select the next and previous path; this means you cannot pan left
  3389.     and right. In order to pan, turn off show singly temporarily.
  3390.     
  3391.     You may also elect to show or hide any edges that may be present.
  3392.  
  3393.     Zooming may be performed in the Arc Vectors window exactly as it is in
  3394.     the main panel - all the same conveniences work here as well.
  3395.  
  3396.     User Interface conveniences
  3397.     ---------------------------
  3398.     You may select an interlaced display or a non-interlaced display for the
  3399.     Arc Vectors panel by pressing the Lace button. You can also adjust the
  3400.     brightness and/or contrast of the image with the S Con and S Bri sliders.
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.                                    -55-                                    
  3415.     Set Vels
  3416.     --------
  3417.     The Set Velocity facility allows you to work with velocity curves. These
  3418.     are curves which defines the rate at which a particular path is traversed
  3419.     over the course of a series of frames in a particular morph sequence.
  3420.     
  3421.     Normally, the default is a linear curve, which essentially says that over
  3422.     a certain number of frames, the motion is stepped at the same rate as
  3423.     there are frames. For instance, if you are generating a 30-frame morph,
  3424.     then a linear velocity curve causes each the motion in each succeeding
  3425.     frame to be 1/30th more developed than the previous one.
  3426.     
  3427.     Imagemaster provides three default curves; "normal", "early" and "late".
  3428.     The normal curve is the linear curve. You can define new curves easily by
  3429.     simply drawing them in the provided graph using the mouse.
  3430.     
  3431.     Looking at the velocity graph, you'll notice that there are two
  3432.     additional lines, one at the top and one at the bottom, which have small
  3433.     arrows attached to the at the right edge of the graph. These lines
  3434.     indicate where the start and stop points of the morph are. You can
  3435.     actually create velocity curves which go past either the beginning or the
  3436.     end of the control paths, which generates an "emphasis" which will likely
  3437.     be dear to animators. This feature, used in conjunction with the curved
  3438.     path capability allows you to create truly organic-looking morph output.
  3439.     
  3440.     The graph is also marked to indicate start and finish image frames, so
  3441.     that you can easily orient yourself with respect to how the velocity
  3442.     curve affects the morph generation over time.
  3443.     
  3444.     Each individual frame in the morph is marked on the graph with a vertical
  3445.     line; you can identify any frame by its position among the group
  3446.     displayed unless there are a very large number of frames to be controlled.
  3447.  
  3448.     You have the ability here to load and save curves, although there is
  3449.     really no need to save the three default curves - they are always
  3450.     available. On the other hand, you do have the ability to change the
  3451.     default curves, and in that case, they are automatically saved with the
  3452.     morph's control point sets. The reason that you might want to save a
  3453.     velocity curve by itself is in case you particularly like the motion it
  3454.     imparts and wish to use it in a future effort.
  3455.  
  3456.     If you create a new curve, you'll want to name it - this is done in the
  3457.     text entry field just below and to the right of the control graph.
  3458.  
  3459.     Point Vel
  3460.     ---------
  3461.     This button, when selected, allows you to choose a velocity curve for a
  3462.     single point from those selected. You also have the option to cancel the
  3463.     operation if you change your mind.
  3464.     
  3465.     Note that changing the velocity of a point can create a conflicting
  3466.     motion where there was none previously; if changing velocity causes
  3467.     tearing or folding in your image, then a conflict has developed and you
  3468.     will either have to restore the previous velocity to the point in
  3469.     question or develop another solution using other points and edges to
  3470.     eliminate the problem.
  3471.  
  3472.  
  3473.                                    -56-                                    
  3474.     Group Ops
  3475.     ---------
  3476.     Imagemaster's morph capability allows you to perform several operations
  3477.     upon groups of control points. There are three main simple group
  3478.     operations at present, and an additional two complex group operations
  3479.     which are located in the panel brought up by the the Motion Control
  3480.     button. Here they are:
  3481.     
  3482.         Under "Group Op"
  3483.         ----------------
  3484.         Set Group Velocity - like Set Vels, but for groups
  3485.               Demote Group - like backspace, but for groups
  3486.               Delete Group - like delete point, but for groups
  3487.  
  3488.     All three of these operations share the sme operating technique. Select
  3489.     the button for the function you want, draw a freehand line surrounding
  3490.     the points you want to affect with the operation and then release the
  3491.     mouse button.
  3492.  
  3493.         Under "Motion Control"
  3494.         ----------------------
  3495.           Move + Size - scale and translate groups of points
  3496.         Move + Rotate - rotate and translate groups of points
  3497.     
  3498.     These two operations start like the previous three, but once the points
  3499.     have been selected, you have some additional control you can use.
  3500.     
  3501.     For Move + Size, dragging with the left mouse button will scale the
  3502.     points.  Dragging with both mouse buttons will translate - or move - all
  3503.     the points.
  3504.  
  3505.     For Move + Rotate, dragging with the left mouse button will rotate the
  3506.     points.  Dragging with both mouse buttons will translate - or move - all
  3507.     the points.
  3508.  
  3509.     After selecting the group of points to be affected, Set Group
  3510.     Velocity will present you with a list of the available velocity
  3511.     curves. Choose the one you want to use from the list, or select Done if
  3512.     you change your mind.
  3513.  
  3514.     Swap Points
  3515.     -----------
  3516.     This simply exchanges entire set of start and end points. This operation
  3517.     is not often used in warp morph operations, although it is very useful in
  3518.     dual-image morphing.
  3519.  
  3520.     Lace
  3521.     ----
  3522.     You can set the main morph panel to interlace mode independantly of the
  3523.     similar control in the Arc Vectors panel.
  3524.  
  3525.     Show Edges
  3526.     ----------
  3527.     This aloows you to choose whether you wish to have any edges which may be
  3528.     present in the morph control information to be displayed.
  3529.  
  3530.  
  3531.  
  3532.                                    -57-                                    
  3533.     Motion Control - General
  3534.     ------------------------
  3535.     To perform a motion warp morph, Imagemaster requires that you...
  3536.     
  3537.         (1) completely specify the single stream of images which are to be
  3538.             contained in that warp morph...
  3539.             
  3540.         (2) set up the points for two (or more) key frames, and optionally...
  3541.         
  3542.         (3) specify the transparency, arc vectors, and velocity controls.
  3543.             Imagemaster will then able to generate a full-motion morph for
  3544.             you in an automated fashion.
  3545.     
  3546.         NOTE: At present, to specify a motion morph, you will have to load
  3547.               both a primary and a secondary image so that you can get to the
  3548.               Compose panel. This is a temporary condition; we suggest that
  3549.               for the moment, you create a very small RGB image such as a
  3550.               brush, that you can load since these will not actually be used
  3551.               in the motion morph. Load it as both the primary and secondary
  3552.               buffers and you'll be ready to go.
  3553.  
  3554.     When you begin, there are two options;
  3555.     
  3556.         (a) load a project file, created from a previous session with the
  3557.             motion morph operations, or...
  3558.             
  3559.         (b) select the "motion morph" button in the "motion control" panel
  3560.             inside the morph tools area to start a new project.
  3561.  
  3562.     If this is a new project, specify the number of frames in the project;
  3563.     then choose the From frames, and the To frames using the buttons provided
  3564.     for that purpose.
  3565.     
  3566.     Once you've done this, press Done in the motion control panel. Now,
  3567.     you'll be setting up the control points for the start frames. When you
  3568.     have these points set up to your satisfaction, return to the motion
  3569.     control panel Select End Frame, saving your new points when prompted to
  3570.     do so.  This will load the final images.  Now, return to the main morph
  3571.     controls by pressing Done. Select Move Points - this is very important!
  3572.     
  3573.     Now, this may be enough to completely run your motion morph, if the
  3574.     images are moving in a very straight line. If not, you'll also need to
  3575.     set up one or more intermediate frames to account for non-linear motion.
  3576.     If you need to do one or more frames, do so now.
  3577.     
  3578.     When you are satisified, save the project from the motion control panel.
  3579.  
  3580.     How motion morphs work:
  3581.     -----------------------
  3582.     Motion morphs are controlled by a special project file. This file
  3583.     contains the names of all the images that are involved in the morph; as
  3584.     well as the names of any sets of points that are defined (by you) for any
  3585.     of the frames. The minimum information in one of these files would be the
  3586.     names of all the frames, and the point file names for the starting and
  3587.     ending frames.
  3588.  
  3589.  
  3590.  
  3591.                                    -58-                                    
  3592.     Using this information, Imagemaster can determine the likely positions
  3593.     for all frames for which you did NOT specify the control points in an
  3594.     exact manner. Note that the guesses which Imagemaster makes for this are
  3595.     based upon the assumption that the motion is linear - that is, the
  3596.     morphing objects are moving in straight lines between the two nearest
  3597.     specified frames.  You always need to determine if this is so; after a
  3598.     few tries, you should be able to tell quite easily if it is, or not.
  3599.     
  3600.     One thing to be aware of is you need to be careful about changing any
  3601.     point file that is involved in a motion morph outside of the motion
  3602.     control panel; that can get things quite out of sync, and cause you
  3603.     problems later.
  3604.     
  3605.     Motion Control - Details
  3606.     ------------------------
  3607.     In order to work with a motion morph, you must switch on the Motion Morph
  3608.     button. Until you do, all the motion morph tools will be ghosted
  3609.     (unselectable).
  3610.     
  3611.     Once on, the first thing to do is to tell Imagemaster how many frames you
  3612.     are going to be working with by entering a value in the "frames" text
  3613.     entry field. Then, select the set of "from" frames, and the set of "to"
  3614.     frames. This is done by using the From Frames and To Frames buttons.
  3615.     
  3616.     Now, you'll need to begin working with the start of frame. So click
  3617.     on the Go To Start button. This will automatically set you to frame 1 and
  3618.     load the starting image. Exit the motion control panel, and set up the
  3619.     control information just as you would for a non-moving warp morph. Then,
  3620.     when the first frame has been prepared, re-enter the motion morph panel
  3621.     and click on the Go To Finish button. This will automatically set you to
  3622.     the last frame in your sequence, and it will ask you to save the points
  3623.     for frame 1. You need to save the points, as they will be used later.
  3624.     Now, set up the points for the end frame.
  3625.     
  3626.     This is all you have to do for the most basic type of motion morph. All
  3627.     the intermediate frames will have sets of points that are created from
  3628.     the two sets you have currrently defined. The process of creating the
  3629.     intermediate points is called "tweening".
  3630.     
  3631.     If the motion morph is not controlled accurately enough, then you'll
  3632.     want to go into a frame near the middle of your series and specifically
  3633.     place the points for that frame as well. Imagemaster can now tween the
  3634.     frames from the start to the middle and then the middle to the end, which
  3635.     will be considerably more accurate.
  3636.     
  3637.     You simply continue this process until the resulting morph is controlled
  3638.     well enough to suit you. You can have motion morphs with anything from
  3639.     just the start and end frames defined, to every frame define - it's up to
  3640.     you.
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.                                    -59-                                    
  3651.     Save Project
  3652.     ------------
  3653.     This saves everything to do with this motion morph. It saves the number
  3654.     of frames, the names of the frames, the point files, transparencies,
  3655.     velocities and so on. It is important that you do remember to save your
  3656.     project if you want to be able to re-create it accurately later.
  3657.     
  3658.     Load Project
  3659.     ------------
  3660.     This is used to begin work on a motion project that has been saved. It
  3661.     loads the current frame and point set automatically, so you can begin
  3662.     work right away.
  3663.  
  3664.     Film
  3665.     ----
  3666.     * See filmstrip documentation
  3667.     
  3668.     Do Seq
  3669.     ------
  3670.     The Do Sequence panel provides you with the tools you need to generate a
  3671.     sequence of frames either for final output, or for a test.
  3672.     
  3673.     Although this panel does specify the output stream, it depends on the
  3674.     settings in a number of other locations to get the job done exactly the
  3675.     way you want it.
  3676.     
  3677.     Obviously, one of those things is the proper control points, edges,
  3678.     velocities and tranparencies as defined by you. 
  3679.     
  3680.     Another important element is the resolution of the output frames and the
  3681.     total number of frames to be generated - those values are chosen in the
  3682.     Set Controls panel.  
  3683.     
  3684.     Finally, if you're going to be using Imagemaster's render to Amiga mode
  3685.     capabilities, the settings in the File I/o panel (reached from
  3686.     Imagemaster's main control panel) for Amiga mode, dither, palette and
  3687.     size are all important here. If you're going to be either generating a
  3688.     test sequence for the filmstrip or generating 24-bit output images, you
  3689.     don't have to worry about any of those settings.
  3690.     
  3691.     Having said that, operation of the actual Do Seq panel is very simple.
  3692.     There are text entry fields for the path to the location where you want
  3693.     to save the 24-bit or rendered files to, the name of the file to be
  3694.     generated, and the extension to be added to the filename (none of which
  3695.     you would care about if you're just generating a test to the filmstrip)
  3696.  
  3697.     You can generate partial sequences by using the two fields which specify
  3698.     starting and ending frames - for instance, if you're generating a 30-
  3699.     frame morph you can generate frames 5 to 11 by simply setting those
  3700.     values. One huge advantage this provides is the ability to use multiple
  3701.     Amigas on a network to each create a portion of a morph sequence for
  3702.     really big jobs, such as those in film resolution (4000x4000) which take
  3703.     a long time to create. This is true distributed processing!
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.                                    -60-                                    
  3710.     Do 1 Frame
  3711.     ----------
  3712.     The Do 1 Frame facility allows you to generate any single frame from a
  3713.     sequence.
  3714.     
  3715.     Imagemaster can generate the frame as a standard buffer, in which case
  3716.     you'll automatically be returned to the main Imagemaster control panel
  3717.     when the frame is ready.
  3718.     
  3719.     You can also generate a single frame as a "preview", in which case the
  3720.     frame is automatically generated in 320x200 resolution and displayed
  3721.     underneath the other two images in the main morphing display area. Note
  3722.     that the 320x200 resolution is used no matter what resolution you have
  3723.     selected in the set controls panel - this is a convenience that makes it
  3724.     easy to generate a preview at any time. To generate as a preview, you
  3725.     must make sure that the preview button is selected before you either
  3726.     press Done or press the Enter key in the frame number text entry field.
  3727.     
  3728.     Examining the text entry field for the frame number will show you that
  3729.     the total number of frames currently set in the Set Controls panel is
  3730.     shown conveniently right here. Make sure that you select a frame from 1
  3731.     to that number. Remember that for a warp morph, the very last frame
  3732.     number, no matter how long the sequence, is the only frame that has the
  3733.     completely warped image represented.
  3734.     
  3735.     Exit
  3736.     ----
  3737.     When you exit the warp morphing panel, you will be asked if you want to
  3738.     save any changed points. If you're not planning to re-enter this panel,
  3739.     it's a good idea to save your work, of course. If you will be coming back
  3740.     here, then you may choose not to save the points - Imagemaster will
  3741.     retain all point and control information until the program is exited or
  3742.     you specifically change that information in the morphing user interface.
  3743.  
  3744.     Dual Image Morphing Tools Reference
  3745.     ===================================
  3746.     The following information details the capabilities of the tools available
  3747.     to you when using the Compose Morph operation. Note that the explanations
  3748.     provided here for dual-image morphing may look similar to those provided
  3749.     for warp morphing, but there are a number of key differences in many
  3750.     areas of the text. We felt it would be better to present the explanations
  3751.     separately than to provide one explanation with dozens of parenthetical
  3752.     notes.
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.                                    -61-                                    
  3769.     Quick Reference to Dual-Image Morphing
  3770.     ======================================
  3771.     
  3772.     Convenient Misc. User Interface Operations
  3773.     - - - - - - - - - - - - - - - - - - - - - -
  3774.    Right mouse button - hides control panel, then brings it back
  3775.         backspace key - demotes a single curve to vector or vector to point
  3776.             FilmStrip - automatically loaded, if enabled by user
  3777.     
  3778.     User Interface Modes (Cyclic button, 4 states):
  3779.     - - - - - - - - - - - - - - - - - - - - - - - -
  3780.            Add Points - Add start and end control points
  3781.         Delete Points - Remove previously added control points
  3782.           Move Points - Move previously added control points
  3783.                 Edges - Add or Remove edges to control point pairs
  3784.     
  3785.     Set Controls
  3786.     - - - - - - 
  3787.            Load Curve - Loads transparency curves from disk, adds to set
  3788.            Save Curve - Saves currently edited curve to disk
  3789.    Create a New Curve - Adds new named curve to loaded set
  3790.        Choose a Curve - Picks a curve to edit from loaded set
  3791.            Curve Name - Allows renaming curve being edited
  3792.            Warp Morph - Transparency preset allows warp morphing (convenience)
  3793.     Transistion Morph - Transparency preset allows dual-image morphing
  3794.          Total Frames - Set # of frames in the morph
  3795.                 X Res - Horizontal output frame resolution
  3796.                 Y Res - Vertical output frame resolution
  3797.   Enhanced Anti-Alias - Higher quality output images (slower generation)
  3798.         FilmStrip Res - Set X Res & Y Res to same as FilmStrip
  3799.              Set View - Set brightness and contrast for both work images
  3800.        Opening Script - ARexx script runs once, before any frames created
  3801.     Pre-Render Script - ARexx script runs before each frame is created
  3802.    Post-Render Script - ARexx script runs after each frame is created
  3803.        Closing Script - ARexx script runs once, after all frames were created
  3804.  
  3805.     Lock Edges
  3806.     - - - - - 
  3807.                    On - Images stretch at the edges
  3808.                   Off - Images pull in black at the edges
  3809.  
  3810.     Shape Add
  3811.     - - - - -
  3812.         Without Edges - Adds points and edges in custom shapes
  3813.            With Edges - Adds points only in custom shape
  3814.           Big C/R key - Drops second copy of shape exactly where first is
  3815.     
  3816.     Drop Grid
  3817.     - - - - -
  3818.         Without Edges - Drop array of control points
  3819.            With Edges - Drop control points and edges as well
  3820.           Big C/R key - Drops second grid exactly where first is
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.                                    -62-                                    
  3828.     Load Points
  3829.     - - - - - -
  3830.         Loads sets of control points, edges, velocity curves, transparency 
  3831.         curves. New sets may be added to the current set or they may replace
  3832.         the current set.
  3833.  
  3834.     Save Points
  3835.     - - - - - -
  3836.         Saves complete sets of points, edges, velocity curves, transparency
  3837.         curves.
  3838.  
  3839.     Delete All Points
  3840.     - - - - - - - - -
  3841.         Removes all points, the edges associated with the points, and the
  3842.         associations between the points and the two types of curves.
  3843.  
  3844.     Zoom
  3845.     - - -
  3846.                 Mouse - pull out rectangle in either image
  3847.                 R key - limit panning/zooming to Right frame only
  3848.                 L key - limit panning/zooming to Left frame only
  3849.                 B key - panning/zooming enabled in Both frames
  3850.                 > key - increase zoom level
  3851.                 < key - decrease zoom level
  3852.  
  3853.     Arc Vectors
  3854.     - - - - - -
  3855.                  Lace - use interlace working area
  3856.                 S Con - Start image contrast (does not affect image data)
  3857.                 S Bri - Start image brightness (does not affect image data)
  3858.                 E Con - End image contrast (does not affect image data)
  3859.                 E Bri - End image brightness (does not affect image data)
  3860.           Show Singly - Show one path (vector or curve) at a time
  3861.            Show Edges - Any edges defined are made visible
  3862.                  Zoom - Turns zoom on and off as per main panel
  3863.                  
  3864.             Curve Handle Mode (Cyclic button, 3 states)
  3865.             - - - - - - - - - - - - - - - - - - - - - -
  3866.                 I Bracket - single line to center of curve
  3867.                 V Bracket - dual lines to ends of curves
  3868.                No bracket - handle "floats" near curve
  3869.  
  3870.     Set Velocities
  3871.     - - - - - - - 
  3872.                Load Curve - Load a previously saved velocity curve
  3873.                Save Curve - Save a velocity curve
  3874.        Create a new curve - Add a curve to the loaded library by hand
  3875.            Choose a curve - Pick a curve from the loaded library
  3876.                Curve Name - Name the current curve being edited
  3877.   Vertical Graph Markings - frame indicators, number = frames
  3878. Horizontal Graph Markings - Undershoot and Overshoot range controls (movable)
  3879.  
  3880.     Pnt Vel
  3881.     - - - -
  3882.     Selects a velocity curve for a single point from the loaded set
  3883.  
  3884.  
  3885.  
  3886.                                    -63-                                    
  3887.     Pnt Trn
  3888.     - - - -
  3889.     Selects a transparency curve for a single point from the loaded set
  3890.  
  3891.     Group Operations
  3892.     - - - - - - - - 
  3893.        Set Group Velocity - selects a velocity curve for a group of points
  3894.    Set Group Transparency - selects a transparency curve for a group of points
  3895.              Demote Group - changes curves to vectors or vectors to points
  3896.              Delete Group - Removes multiple points and associated edges
  3897.  
  3898.     Swap All
  3899.     - - - - -
  3900.         Swaps points, edges, associations and images. Reverses entire morph.
  3901.  
  3902.     Swap Points
  3903.     - - - - - -
  3904.         Swaps points and edges and associations; in case images are reversed
  3905.  
  3906.     Lace
  3907.     - - -
  3908.         use interlace work display for main editing area
  3909.  
  3910.     Show Edges
  3911.     - - - - - -
  3912.         Show any edges that are defined
  3913.  
  3914.     Motion Control
  3915.     - - - - - - - 
  3916.              Motion Morph - Enables motion mode controls
  3917.              Project Name - Allows you to set a custom name for project
  3918.                    Frames - Specifies total # frames in project
  3919.                   Current - Pick a new frame to work on
  3920.               From Frames - Select set of from frames
  3921.                 To Frames - Select set of to frames
  3922.               Go To Start - Go to frame 1 of morph, load images, etc
  3923.              Go To Finish - Go to last frame of morph, load images, etc
  3924.              Load Project - Load previously saved project
  3925.              Save Project - Save the current project
  3926.              ----------------------------------------
  3927.              These next two really belong in Group Ops... sorry!
  3928.              ----------------------------------------
  3929.               Move + Size - select group of points and scale, translate
  3930.             Move + Rotate - select group of points and rorate, translate
  3931.  
  3932.     Film
  3933.     - - -
  3934.         Use filmstrip player. (You must turn on film in display panel)
  3935.  
  3936.  
  3937.  
  3938.  
  3939.  
  3940.  
  3941.  
  3942.  
  3943.  
  3944.  
  3945.                                    -64-                                    
  3946.     Do Seq
  3947.     - - - -
  3948.                      Path - set path for files to go to
  3949.                      Name - set name for files (number is added)
  3950.                 Extension - set extension for files
  3951.            Starting Frame - frame to begin generating with
  3952.          End Frame of (n) - frame to end generation with
  3953.            Render Results - use Imagemaster rendering as output file
  3954.            Save as 24-bit - use Imagemaster 24-bit save as output file
  3955.    Test Run (Do Not Save) - generate only to filmstrip
  3956.                    Cancel - never mind...
  3957.                      Done - generate sequence now
  3958.  
  3959.     Do 1 Frame
  3960.     - - - - - -
  3961.     Frame Number (Of (n)) - which frame to generate: <enter> = Do it
  3962.                   Preview - make 320x200 preview image in morph panel
  3963.                    Cancel - never mind...
  3964.                      Done - Do it
  3965.  
  3966.     Detailed Dual-Image Morphing Reference
  3967.     ======================================
  3968.  
  3969.     Morphing and Frames
  3970.     -------------------
  3971.     When we speak of frames with regard to dual-image morphing, we are
  3972.     referring to the concept that many morphs are intended to be animated.
  3973.     Because of this, the morphs would be performed over a series of
  3974.     intermediate frames where the effect is slightly more complete in each of
  3975.     the frames. For instance, when someone says thay are creating a 15-frame
  3976.     dual-image morph, the idea they are conveying is that in frame 15, the
  3977.     morph has fully converted from the starting image to the ending image. In
  3978.     frame 8, the middle frame, the effect would be a 50% mix of both frames,
  3979.     and so on for each intermediate frame.  When a sequence of frames are
  3980.     rendered, the "flow" of the surfaces of the images under control of the
  3981.     points and edges is apparent as the frames are viewed in series.
  3982.     
  3983.     When the object of a dual-image morph is a single final image and not a
  3984.     sequence of images, the convention is to assume that the desired image is
  3985.     the middle image of a sequence (of any length). As an example, if
  3986.     Imagemaster has been set for a 15-frame sequence, rendering frame 8 will
  3987.     provide a result with the mix of the two images most obvious.
  3988.     
  3989.     Imagemaster allows you to choose a frame from anywhere within the
  3990.     currently set sequence length when you render a single frame instead of a
  3991.     sequence of frames. Simply remember that when you are creating a single
  3992.     frame result of a dual-image morph you should set the frame to be
  3993.     rendered to be the middle of the length of the sequence.  This is done in
  3994.     the "Do 1 Frame" control panel, which is described in more detail later.
  3995.  
  3996.  
  3997.  
  3998.  
  3999.  
  4000.  
  4001.  
  4002.  
  4003.  
  4004.                                    -65-                                    
  4005.     Points
  4006.     ------
  4007.     Control points are used to define the flow of the image surface over the
  4008.     frames of a morph; when the object is one single image instead of
  4009.     a sequence, you should still think of the control points this way - it's
  4010.     just that you're only interested in the middle frame of the sequence. The
  4011.     start point defines the portion of the image that will be moved, and the
  4012.     end point defines the location for that portion of the image for the
  4013.     final frame of the morph.
  4014.     
  4015.     Control points can be thought of in two ways. First, and most
  4016.     conveniently, as a series of pairs of points, just as you see them in the
  4017.     main dual-window interface.
  4018.     
  4019.     Secondly, you can consider the two points as the endpoints of a path,
  4020.     over which the images must "flow" to accomplish the changes you are
  4021.     specifying with the points. You can actually see these paths in the Arc
  4022.     Vectors window.
  4023.     
  4024.     It is not strictly correct to think of control points as the endpoints of
  4025.     vectors, for Imagemaster can make the course between the two points a
  4026.     complex curve instead of a straight line. That is why you should think of
  4027.     them as paths, rather than vectors. The default course between two points
  4028.     is a straight line (vector). Extension from a vector to a more complex
  4029.     path is done in the Arc Vectors interface, where you can "grab" the
  4030.     vector and shape it into a curve. This is described in more detail in the
  4031.     portion of this document that describes the Arc Vectors control panel.
  4032.     
  4033.     Placement of points should be done such that they are deposited at all
  4034.     key corresponding locations on the two image's surfaces. If we take the
  4035.     case of a face as an example, the corners of the eyes and mouth are
  4036.     obvious candidates. In addition, placement of points regularly along the
  4037.     edge of the profile will help control the images more exactly.
  4038.     
  4039.     Points are never discarded by Imagemaster's morphing procedures, even if
  4040.     they are defined in a conflicting manner. For this reason, you need to be
  4041.     careful that you do not place your points in such a way as to cause a
  4042.     conflict - one example of this is when the paths of two points cross each
  4043.     other during the course of a morph. This, and similar situations, will
  4044.     create folding and/or tearing in the image. Often you will find it easy
  4045.     to determine if such a condition exists by observing the paths defined by
  4046.     the endpoints in the Arc Vectors interface.
  4047.     
  4048.     Points cannot completely restrain an image, because they only exactly
  4049.     control the portion of the images directly underneath where they are
  4050.     placed. Areas of the images which are not directly underneath a point (or
  4051.     an edge) are adjusted according to the motions of the points which are
  4052.     nearest. Even points which are quite far away may add motion to an
  4053.     otherwise uncontrolled region.  When a portion of an image needs more
  4054.     exact control, you should use points in conjunction with edges, described
  4055.     next.
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.                                    -66-                                    
  4064.     Edges
  4065.     -----
  4066.     Edges are similar to points in that they specify movement for the surface
  4067.     of the image. They differ in that they control a much larger region, the
  4068.     entire area exactly under the line.
  4069.     
  4070.     Edges also differ in that Imagemaster's morphing procedures may discard
  4071.     an edge under certain circumstances, such as when two edges are defined
  4072.     that cross each other. When creating edges, you should take care to
  4073.     ensure that you do not create a situation like this, as the results are
  4074.     undefined and will result in the images tearing or folding.
  4075.     
  4076.     Placement of edges should generally be done along lines in the images
  4077.     such as the edges of eyes or a profile. They will restrict the motion of
  4078.     the image's surface such that image data will not be transferred across
  4079.     the line, retaining colors precisely within the regions which are bounded
  4080.     by edges.  Most high-quality morphs will use almost as many edges as they
  4081.     do points.
  4082.     
  4083.     Morphing Time
  4084.     -------------
  4085.     The time it takes Imagemaster to generate morph output frames is based
  4086.     almost entirely upon the size of the output images in the sequence. Anti-
  4087.     aliasing also adds a certain amount of time to the generation of each
  4088.     frame, again directly proportional to the size of the output image. A
  4089.     small amount of additional time is needed to compute frames that contain
  4090.     custom point-velocity computations.  The size of the input images has no
  4091.     effect (and they may even be different resolutions, also with no effect
  4092.     on time); Imagemaster always scales images as needed during operations.
  4093.     
  4094.     Operating Modes
  4095.     ---------------
  4096.     Operating mode is set by the four-state button at the upper left of the
  4097.     main morphing control panel. Clicking on this button with the mouse will
  4098.     cycle it through its four states: Move, Add, Delete and Edges.
  4099.     
  4100.     Move Points
  4101.         When Move Points mode is active, clicking in either the left window
  4102.         (start points) or the right window (end points) selects the nearest
  4103.         point to the mouse pointer; dragging the mouse with the left button
  4104.         held down also drags the selected point.
  4105.     
  4106.     Add Points
  4107.         When Add Points mode is active, clicking in the left window (start
  4108.         points) places points.  Once a point has been placed in the left
  4109.         window, the corresponding end point appears in exactly the same
  4110.         relative position in the right window. While in Add Points mode, you
  4111.         can also adjust the position of any point in the right (end points)
  4112.         window, which remains in Move Points mode - this is done so that you
  4113.         can naturally add and adjust points. One consequence of this
  4114.         organization is that you cannot add points by clicking in the right
  4115.         window.
  4116.  
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.                                    -67-                                    
  4123.     Delete Points
  4124.         When Delete Points mode is active, clicking on a point in either the
  4125.         left (start points) or right (end points) window removes that point.
  4126.         Any edges that were attached to that point are also automatically
  4127.         deleted.
  4128.     
  4129.     Edges
  4130.         When Edges mode is initially made active, any point that was selected
  4131.         is automatically de-selected.
  4132.         
  4133.         To add an edge, first select (by clicking upon) the point where the
  4134.         edge is to begin in either window.  Next, select the point where the
  4135.         edge is to end in either window. The edge will be created at this
  4136.         point; also, the last point you clicked on is now the current point,
  4137.         so to create the next in a series of linked edges, just click on the
  4138.         next point in turn. When you have completed a series of edges,
  4139.         remember to click one more time on the last point to deselect it. If
  4140.         you forget this step, the next point you click on will inconveniently
  4141.         connect to this one.
  4142.         
  4143.         To delete an edge, click on one of the points attached to that edge.
  4144.         Next, click on the other point attached to that edge; the edge will
  4145.         be removed. Remember to click again upon the last point to deselect
  4146.         it unless you are continuing edge creation/deletion from that point.
  4147.     
  4148.     Set Controls
  4149.     ------------
  4150.     Total Frames
  4151.         The Total Frames entry box is used to set the total number of frames
  4152.         in a morph sequence. If you wanted to create a 30-frame morph, you
  4153.         would enter the number 30 in this box before attempting to generate
  4154.         any frames.
  4155.     
  4156.     X Res and Y Res
  4157.         These two entry boxes set the output resolution of the morph frames
  4158.         that are to be generated in all cases except for single-frame preview
  4159.         generation. Preview frames are automatically generated at 320x200
  4160.         resolution and do not affect the resolution settings made here. The
  4161.         time it takes Imagemaster to generate morph frames is based almost
  4162.         entirely upon the size of the output frame, so if time is a
  4163.         consideration, you may want to generate a lower-resolution morph
  4164.         output.
  4165.     
  4166.     Enhanced Anti-Alias
  4167.         This button, when selected, causes Imagemaster's morphing procedures
  4168.         to use special smoothing methods during the generation of the output
  4169.         frames of a morph. The result is always a better image, however this
  4170.         can add considerably to the completion time of each frame to be
  4171.         generated.
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.                                    -68-                                    
  4182.     Filmstrip Res
  4183.         This button provides a convenient way for you to setup the exact
  4184.         resolution required to generate frames that fit perfectly within the
  4185.         filmstrip. It automatically loads the X Res and Y Res text fields
  4186.         with 96 and 60, the X and Y resolution of the filmstrip.
  4187.     
  4188.     Set View
  4189.         Set View allows you to set the brightness and/or contrast of the
  4190.         images being morphed. The purpose of this is to allow you to work on
  4191.         images which may not provide enough detail in the morph area without
  4192.         some enhancement. Adjusting either the brightness or contrast here
  4193.         does not modify the images themseves, only the display routines in the
  4194.         morphing procedures are affected so you can use them without concern.
  4195.  
  4196.     ARexx Scripts
  4197.         The morphing tools have the ability to call ARexx scripts before,
  4198.         during and after the generation of a sequence of output frames. One
  4199.         use of this capability is to take rendered output from Imagemaster
  4200.         and use it to create an animation directly as each frame is produced,
  4201.         and then automatically delete the individual frames. In order to do
  4202.         this, fill in the script entry fields as follows:
  4203.         
  4204.                 Opening Script:   rxpi:animwr1.rexx
  4205.              Pre-render Script:
  4206.             Post-render Script:   rxpi:animwr3.rexx
  4207.                 Closing Script:   rxpi:animwr4.rexx
  4208.         
  4209.         Remember that if there are any scripts in these fields, they will
  4210.         automatically be called. If you're not using ARexx scripts, be sure
  4211.         to delete the contents of these four fields to avoid problems.
  4212.  
  4213.     Opening Script
  4214.         The Opening Script text entry field is used to contain the full path
  4215.         and name of an ARexx script that will be executed once, before any
  4216.         frames are generated. For example, when generating animations, the
  4217.         Opening Script text entry field should be filled in with
  4218.         "rxpi:animwr1.rexx" (without the quotes).
  4219.     
  4220.     Pre-render Script
  4221.         The Pre-render Script text entry field is used to contain the full
  4222.         path and name of an ARexx script that will be executed just before
  4223.         each frame in the sequence is generated.
  4224.     
  4225.     
  4226.     Post-render Script
  4227.         The Post-render Script text entry field is used to contain the full
  4228.         path and name of an ARexx script that will be executed just after
  4229.         each frame in the sequence is generated. For example, when generating
  4230.         animations, the Post-render Script text entry field should be filled
  4231.         in with "rxpi:animwr3.rexx" (without the quotes).
  4232.  
  4233.  
  4234.  
  4235.  
  4236.  
  4237.  
  4238.  
  4239.  
  4240.                                    -69-                                    
  4241.     Closing Script
  4242.         The Closing Script text entry field is used to contain the full path
  4243.         and name of an ARexx script that will be executed once, after all
  4244.         frames have been generated. For example, when generating animations,
  4245.         the Closing Script text entry field should be filled in with
  4246.         "rxpi:animwr4.rexx" (without the quotes).
  4247.     
  4248.     Transparency Curve
  4249.         The transparency curve is used to describe the amount of image
  4250.         information that comes from each image over the course of the morph.
  4251.         When a typical morph begins, all color and brightness comes from the
  4252.         start image. At the middle of the morph, 1/2 the image information
  4253.         comes from each image, and when it ends, all the image information
  4254.         comes from the final image. The transparency curve describes how much
  4255.         information comes from which image.
  4256.         
  4257.         Imagemaster provides three standard curves: "normal", "early" and
  4258.         "late". The normal curve acts as described in the previous paragraph.
  4259.         The early curve begins showing the color and brightness information
  4260.         from the end image quite early; and the late curve transforms into
  4261.         the end image quite late.
  4262.         
  4263.         You can define new curves at any time by coming here, selecting
  4264.         Create a New Curve and then drawing the curve with your mouse. You
  4265.         can then save the curve itself if you like using Save Curve, or when
  4266.         you save your morph points and edges, the curve will be saved with
  4267.         them (in the points file, not by itself). If you create a new curve,
  4268.         remember to name it.
  4269.         
  4270.         If you attempt to modify any of the three preset curves, Imagemaster
  4271.         will warn you, because normally, you would want to keep these three
  4272.         curves around - it's just as easy to make a new curve. However, if
  4273.         you really want to, you can change the standard curves by simply
  4274.         indicating that is what you want to do.
  4275.         
  4276.         Note that the transparency curve showing in the graph here in the set
  4277.         controls window may, or may not, be the curve that applies to your
  4278.         image. Imagemaster allows you to assign any point or group of points
  4279.         to any transparency curve. There are no limits on how many
  4280.         transparency curves you may use. If you wish to see which curve a
  4281.         point uses, select Move Points mode, click on the point in question,
  4282.         and then press Pnt Trn; the correct curve will be displayed.
  4283.     
  4284.     Lock Edge
  4285.     ---------
  4286.     The Lock Edge button, when selected, causes the very edges of the image
  4287.     to be "pinned down". This usually provides better results in the final
  4288.     morph. In some cases it may be better to let the edges float. We suggest
  4289.     that normally you leave this selected, and only if you are having
  4290.     problems with the edges of a morph should you de-select it.
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.                                    -70-                                    
  4300.     Shape Add
  4301.     ---------
  4302.     The Shape Add facility uses IShapes, Imagemaster's unique custom shape
  4303.     definitions. IShapes are essentially complete pre-defined shapes,
  4304.     circles, lines and so on. These shapes are selected from a file requester
  4305.     and then placed on the the images to be morphed using the mouse. IShapes
  4306.     may be moved and scaled during placement, a feature that makes them ideal
  4307.     for surface control in morph applications.
  4308.     
  4309.     The procedure for adding an IShape is to select the shape from the list
  4310.     in the file requester; place the IShape on the starting image, and then
  4311.     place the IShape on the ending image. You have the opportunity to move
  4312.     and size during both placements. One extra feature is the convenient
  4313.     immediate-drop capability; just press the newline key on the keyboard and
  4314.     the second IShape is dropped exactly in the same location as the first
  4315.     IShape. This is useful for "locking down" regions of the image.
  4316.     
  4317.     Add Edges + Points / Just Points
  4318.         When adding an IShape, you will be asked if you want just the points
  4319.         that make up the shape, or edges as well. We find that we almost
  4320.         always want the edges - and if that is not the case, it is easy to
  4321.         delete the edges you don't need after the shape has been added.
  4322.     
  4323.     Drop Grid
  4324.     ---------
  4325.     Dropping grids work in many ways similar to IShapes. You have the
  4326.     opportunity to select either a rectangular region or the entire image. If
  4327.     you select the entire image, the grid is dropped evenly over the image
  4328.     without any further control from you. If you select rectangular area,
  4329.     then you get to place the grid just as if it was an IShape, with all the
  4330.     repositioning and immediate-drop capabilities.
  4331.     
  4332.     You may add grids with or without edges, and you can set the number of
  4333.     horizontal points and vertical points independantly of each other.
  4334.     
  4335.     Load Points
  4336.     -----------
  4337.     Load Points gives you the ability to load a previously saved set of
  4338.     points in at a later date than the session during which they were
  4339.     designed. Loading points gives you more, however - it also provides a way
  4340.     to work on a morph in sections.
  4341.     
  4342.     For instance, in some complex morphs you may have points and edges
  4343.     defined for many different regions of the image; it may be more
  4344.     convenient to work only on those points without having all the other
  4345.     points around to distract you.
  4346.     
  4347.     If you'd like to do this, simply save each set as you create them under a
  4348.     new name and then delete all the points before moving on to the next set
  4349.     to be generated.  Then, which it comes time to assemble all the points,
  4350.     simply load each individual set and select "Add To Current Set" for each
  4351.     one. Once you've loaded all the point sets, simply proceed with the morph
  4352.     generation. You can save all the points together at this time also, if
  4353.     you like. Imagemaster doesn't care one way ot the other - it's very
  4354.     flexible in this regard.
  4355.  
  4356.  
  4357.  
  4358.                                    -71-                                    
  4359.     When loading a new set of points, if points already exist in the image
  4360.     you will be given an opportunity to save them before loading the new set.
  4361.     If you're going to add to the current set. select "discard current set",
  4362.     which simply means that you're willing to have the current set modified
  4363.     by the new set you are loading in.
  4364.  
  4365.     Save Points
  4366.     -----------
  4367.     This operation is very simple. It simply saves everything about the
  4368.     current set of points - the points and edges, any velocity or
  4369.     transparency information that has been applied to them and so on. You
  4370.     should save your work often to prevent accidents from losing what may be
  4371.     a creative stroke of genius.
  4372.     
  4373.     Del All Points
  4374.     --------------
  4375.     This operation deletes all the point, edge, velocity and transparency
  4376.     information that is currently defined.
  4377.     
  4378.     Zoom and Pan
  4379.     ------------
  4380.     Imagemaster's morphing tools have extremely flexible and powerful zooming
  4381.     and panning capabilities. Not only can you get in close and pan around,
  4382.     but you can pan and zoom the two images independantly of each other,
  4383.     which allows you to get at both ends of even highly separated control
  4384.     points. Zoom levels for both images, which may be different, are kept the
  4385.     same between the main interface and the Arc Vectors interface. This
  4386.     allows you to go back and forth quickly and with a minimum of
  4387.     disorientation.
  4388.     
  4389.     To zoom with the mouse, press the Zoom button so that it is selected. now
  4390.     simply drag out a rectangle with the mouse. Drag using the left button
  4391.     only. If, while dragging with the left mouse button, you depress the
  4392.     right mouse button as well, the rectangle will stop sizing and begin to
  4393.     move around. You can go back and forth between sizing and moving until
  4394.     the rectangle surrounds the area of interest - then release any mouse
  4395.     buttons you are holding and the area will be zoomed. You may zoom in as
  4396.     close as 8 pixels for placement of control points with sub-pixel accuracy.
  4397.     
  4398.     To unzoom, simply click on the Zoom button so that it unselects and the
  4399.     images will be redrawn normal size.
  4400.  
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.                                    -72-                                    
  4418.     You may also use keyboard commands to zoom. Keystroke commands are
  4419.     asynchronous so that you can pan and zoom at near real-time speed, even
  4420.     though the zoom or pan has not completely redrawn. The following
  4421.     keystrokes are available:
  4422.  
  4423.         Press the "<" key to decrease zoom 25%
  4424.         Press the ">" key to increase zoom 25%
  4425.         
  4426.         Press the "R" key to restrict zoom key commands to start frame
  4427.         Press the "L" key to restrict zoom key commands to end frame
  4428.         Press the "B" key to allow zoom key commands in both frames
  4429.         
  4430.         Press the left cursor pad to.... pan left
  4431.         Press the right cursor pad to... pan right
  4432.         Press the up cursor pad to...... pan up
  4433.         Press the down cursor pad to.... pan down
  4434.  
  4435.     Arc Vectors
  4436.     -----------
  4437.     The Arc Vectors interface provides another way to look at the control
  4438.     points and edges which together define the morph effects you want to take
  4439.     place on the surface of the images.
  4440.     
  4441.     For dual image-morphing, the Arc Vectors interface operates in an
  4442.     "Onionskin" mode. This is a display mode where you can actually see both
  4443.     the start image and the end image at the same time; you can adjust the
  4444.     brightness and contrast of both images indpendantly of each other for the
  4445.     best visual mix, and as in the main interface, you can zoom and pan the
  4446.     two images completely independantly of each other.
  4447.     
  4448.     In the Arc Vectors interface, start control points are shown as solid
  4449.     red boxes; end control points are shown as hollow red boxes; and the
  4450.     paths between them are shown as blue lines, except when the path is
  4451.     selected, in which case it is shown as a dashed white and blue line.
  4452.     
  4453.     You'll notice an additional symbol, that of a hollow red triangle in the
  4454.     center of each line. This triangle is a "handle" you can pull on if you
  4455.     would like to extend the path from a vector (straight line) to a more
  4456.     complex curved shape.
  4457.     
  4458.     You can also "demote" any path from a curve to a vector by first
  4459.     selecting either end of the path and then pressing the "backspace" key.
  4460.     If the path was a curve, you'll be asked if you want to demote it to a
  4461.     vector; if it was a vector, you'll be asked if you want to demote it to a
  4462.     point (where the start and endpoints are in the same location). You'll
  4463.     also have the opportunity to cancel if you change your mind for any reason.
  4464.     
  4465.     When a path is a curve, as a convenience you can select three types of
  4466.     representations to link the triangular handle with the path;
  4467.     
  4468.         "No Bracket" - where the triangle "floats" near the vector
  4469.         "I Bracket"  - where the triangle is attached by a straight line
  4470.         "V Bracket"  - where the triangle is attached by two lines
  4471.  
  4472.  
  4473.  
  4474.  
  4475.  
  4476.                                    -73-                                    
  4477.     You may select either all paths visible at once, or "Show Singly", where
  4478.     only one path at a time is visible.  You use the left and right cursor
  4479.     keys to select the next and previous path; this means you cannot pan left
  4480.     and right. In order to pan, turn off show singly temporarily.
  4481.     
  4482.     You may also elect to show or hide any edges that may be present.
  4483.  
  4484.     Zooming may be performed in the Arc Vectors window exactly as it is in
  4485.     the main panel - all the same conveniences work here as well.
  4486.  
  4487.     User Interface conveniences
  4488.     ---------------------------
  4489.     You may select an interlaced display or a non-interlaced display for the
  4490.     Arc Vectors panel by pressing the Lace button. You can also adjust the
  4491.     brightness and/or contrast of either of the two images with the S Con,
  4492.     S Bri, E Con, and E Bri sliders. You may select the level of mix between
  4493.     the two images by using the "Show Through" slider. All of these controls
  4494.     operate in an asychronous mode so that you can use them in realtime - you
  4495.     don't have to wait for a redraw to complete to change to a new setting.
  4496.  
  4497.     Set Vels
  4498.     --------
  4499.     The Set Velocity facility allows you to work with velocity curves. These
  4500.     are curves which defines the rate at which a particular path is traversed
  4501.     over the course of a series of frames in a particular morph sequence.
  4502.     
  4503.     Normally, the default is a linear curve, which essentially says that over
  4504.     a certain number of frames, the motion is stepped at the same rate as
  4505.     there are frames. For instance, if you are generating a 30-frame morph,
  4506.     then a linear velocity curve causes each the motion in each succeeding
  4507.     frame to be 1/30th more developed than the previous one.
  4508.     
  4509.     Imagemaster provides three default curves; "normal", "early" and "late".
  4510.     The normal curve is the linear curve. You can define new curves easily by
  4511.     simply drawing them in the provided graph using the mouse.
  4512.     
  4513.     Looking at the velocity graph, you'll notice that there are two
  4514.     additional lines, one at the top and one at the bottom, which have small
  4515.     arrows attached to the at the right edge of the graph. These lines
  4516.     indicate where the start and stop points of the morph are. You can
  4517.     actually create velocity curves which go past either the beginning or the
  4518.     end of the control paths, which generates an "emphasis" which will likely
  4519.     be dear to animators. This feature, used in conjunction with the curved
  4520.     path capability allows you to create truly organic-looking morph output.
  4521.     
  4522.     The graph is also marked to indicate start and finish image frames, so
  4523.     that you can easily orient yourself with respect to how the velocity
  4524.     curve affects the morph generation over time.
  4525.     
  4526.     Each individual frame in the morph is marked on the graph with a vertical
  4527.     line; you can identify any frame by its position among the group
  4528.     displayed unless there are a very large number of frames to be controlled.
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.                                    -74-                                    
  4536.     You have the ability here to load and save curves, although there is
  4537.     really no need to save the three default curves - they are always
  4538.     available. On the other hand, you do have the ability to change the
  4539.     default curves, and in that case, they are automatically saved with the
  4540.     morph's control point sets. The reason that you might want to save a
  4541.     velocity curve by itself is in case you particularly like the motion it
  4542.     imparts and wish to use it in a future effort.
  4543.  
  4544.     If you create a new curve, you'll want to name it - this is done in the
  4545.     text entry field just below and to the right of the control graph.
  4546.  
  4547.     Point Velocity (Pnt Vel)
  4548.     ------------------------
  4549.     This button, when selected, allows you to choose a velocity curve for a
  4550.     single point from those currently available. You also have the option to
  4551.     cancel the operation if you change your mind.
  4552.     
  4553.     Note that changing the velocity of a point can create a conflicting
  4554.     motion where there was none previously; if changing velocity causes
  4555.     tearing or folding in your image, then a conflict has developed and you
  4556.     will either have to restore the previous velocity to the point in
  4557.     question or develop another solution using other points and edges to
  4558.     eliminate the problem.
  4559.     
  4560.     Point Transparency (Pnt Trn)
  4561.     ----------------------------
  4562.     This button, when selected, allow syou to choose a transpaarency curve
  4563.     for a single point from those currently available. You also have the
  4564.     opportunity to cancel if you change your mind.
  4565.     
  4566.     Group Ops
  4567.     ---------
  4568.     Imagemaster's morph capability allows you to perform several operations
  4569.     upon groups of control points. There are four main simple group
  4570.     operations at present, and an additional two complex group operations
  4571.     which are located in the panel brought up by the the Motion Control
  4572.     button. Here they are:
  4573.     
  4574.         Under "Group Op"
  4575.         ----------------
  4576.             Set Group Velocity - like Set Vel, but for groups
  4577.         Set Group Transparency - Like Set Trn, but for groups
  4578.                   Demote Group - like backspace, but for groups
  4579.                   Delete Group - like delete point, but for groups
  4580.  
  4581.     All four of these operations share the sme operating technique. Select
  4582.     the button for the function you want, draw a freehand line surrounding
  4583.     the points you want to affect with the operation and then release the
  4584.     mouse button.
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594.                                    -75-                                    
  4595.         Under "Motion Control"
  4596.         ----------------------
  4597.           Move + Size - scale and translate groups of points
  4598.         Move + Rotate - rotate and translate groups of points
  4599.     
  4600.     These two operations start like the previous three, but once the points
  4601.     have been selected, you have some additional control you can use.
  4602.     
  4603.     For Move + Size, dragging with the left mouse button will scale the
  4604.     points.  Dragging with both mouse buttons will translate - or move - all
  4605.     the points.
  4606.  
  4607.     For Move + Rotate, dragging with the left mouse button will rotate the
  4608.     points.  Dragging with both mouse buttons will translate - or move - all
  4609.     the points.
  4610.  
  4611.     After selecting the group of points to be affected, Set Group
  4612.     Transparency will present you with a list of the available transparency
  4613.     curves. Choose the one you want to use from the list, or select Done if
  4614.     you change your mind.
  4615.  
  4616.     After selecting the group of points to be affected, Set Group
  4617.     Velocity will present you with a list of the available velocity
  4618.     curves. Choose the one you want to use from the list, or select Done if
  4619.     you change your mind.
  4620.  
  4621.     Swap Points
  4622.     -----------
  4623.     This simply exchanges entire set of start and end points. You would most
  4624.     often use it when you loaded the images backwards into the primary and
  4625.     secondary buffers.
  4626.     
  4627.     
  4628.     Swap All
  4629.     --------
  4630.     This exchanges the entire set of points and both images as well. This is
  4631.     used to set the morph to go in the reverse direction.
  4632.  
  4633.     Lace
  4634.     ----
  4635.     You can set the main morph panel to interlace mode independantly of the
  4636.     similar control in the Arc Vectors panel.
  4637.  
  4638.     Show Edges
  4639.     ----------
  4640.     This aloows you to choose whether you wish to have any edges which may be
  4641.     present in the morph control information to be displayed.
  4642.  
  4643.  
  4644.  
  4645.  
  4646.  
  4647.  
  4648.  
  4649.  
  4650.  
  4651.  
  4652.  
  4653.                                    -76-                                    
  4654.     Motion Control - General
  4655.     ------------------------
  4656.     To perform a motion morph, Imagemaster requires that you...
  4657.     
  4658.         (1) completely specify the two streams of images which are to be
  4659.             contained in that morph...
  4660.             
  4661.         (2) set up the points for two (or more) key frames, and optionally...
  4662.         
  4663.         (3) specify the transparency, arc vectors, and velocity controls.
  4664.             Imagemaster will then able to generate a full-motion morph for
  4665.             you in an automated fashion.
  4666.     
  4667.         NOTE: At present, to specify a motion morph, you will have to load
  4668.               both a primary and a secondary image so that you can get to the
  4669.               Compose panel. This is a temporary condition; we suggest that
  4670.               for the moment, you create a very small RGB image such as a
  4671.               brush, that you can load since these will not actually be used
  4672.               in the motion morph. Load it as both the primary and secondary
  4673.               buffers and you'll be ready to go.
  4674.  
  4675.     When you begin, there are two options;
  4676.     
  4677.         (a) load a project file, created from a previous session with the
  4678.             motion morph operations, or...
  4679.             
  4680.         (b) select the "motion morph" button in the "motion control" panel
  4681.             inside the morph tools area to start a new project.
  4682.  
  4683.     If this is a new project, specify the number of frames in the project;
  4684.     then choose the From frames, and the To frames using the buttons provided
  4685.     for that purpose.
  4686.     
  4687.     Once you've done this, press Done in the motion control panel. Now,
  4688.     you'll be setting up the control points for the start frames. When you
  4689.     have these points set up to your satisfaction, return to the motion
  4690.     control panel Select End Frame, saving your new points when prompted to
  4691.     do so.  This will load the final images.  Now, return to the main morph
  4692.     controls by pressing Done. Select Move Points - this is very important!
  4693.     
  4694.     Now, this may be enough to completely run your motion morph, if the
  4695.     images are moving in a very straight line. If not, you'll also need to
  4696.     set up one or more intermediate frames to account for non-linear motion.
  4697.     If you need to do one or more frames, do so now.
  4698.     
  4699.     When you are satisified, save the project from the motion control panel.
  4700.  
  4701.  
  4702.  
  4703.  
  4704.  
  4705.  
  4706.  
  4707.  
  4708.  
  4709.  
  4710.  
  4711.  
  4712.                                    -77-                                    
  4713.     How motion morphs work:
  4714.     -----------------------
  4715.     Motion morphs are controlled by a special project file. This file
  4716.     contains the names of all the images that are involved in the morph; as
  4717.     well as the names of any sets of points that are defined (by you) for any
  4718.     of the frames. The minimum information in one of these files would be the
  4719.     names of all the frames, and the point file names for the starting and
  4720.     ending frames.
  4721.     
  4722.     Using this information, Imagemaster can determine the likely positions
  4723.     for all frames for which you did NOT specify the control points in an
  4724.     exact manner. Note that the guesses which Imagemaster makes for this are
  4725.     based upon the assumption that the motion is linear - that is, the
  4726.     morphing objects are moving in straight lines between the two nearest
  4727.     specified frames.  You always need to determine if this is so; after a
  4728.     few tries, you should be able to tell quite easily if it is, or not.
  4729.     
  4730.     One thing to be aware of is you need to be careful about changing any
  4731.     point file that is involved in a motion morph outside of the motion
  4732.     control panel; that can get things quite out of sync, and cause you
  4733.     problems later.
  4734.     
  4735.     Motion Control - Details
  4736.     ------------------------
  4737.     In order to work with a motion morph, you must switch on the Motion Morph
  4738.     button. Until you do, all the motion morph tools will be ghosted
  4739.     (unselectable).
  4740.     
  4741.     Once on, the first thing to do is to tell Imagemaster how many frames you
  4742.     are going to be working with by entering a value in the "frames" text
  4743.     entry field. Then, select the set of "from" frames, and the set of "to"
  4744.     frames. This is done by using the From Frames and To Frames buttons.
  4745.     
  4746.     Now, you'll need to begin working with the start pair of frames. So click
  4747.     on the Go To Start button. This will automatically set you to frame 1 and
  4748.     load both starting images. Exit the motion control panel, and set up the
  4749.     control information just as you would for a non-moving morph. Then, when
  4750.     the first set of frames has been prepared, re-enter the motion morph
  4751.     panel and click on the Go To Finish button. This will automatically set
  4752.     you to the last pair of frames in your sequence, and it will ask you to
  4753.     save the points for frame 1. You need to save the points, as they will be
  4754.     used later. Now, set up the points for the end frames.
  4755.     
  4756.     This is all you have to do for the most basic type of motion morph. All
  4757.     the intermediate frames will have sets of points that are created from
  4758.     the two sets you have currrently defined. The process of creating the
  4759.     intermediate points is called "tweening".
  4760.     
  4761.     If the motion morph is not controlled accurately enough, then you'll
  4762.     want to go into a air of frames near the middle of your series and
  4763.     specifically place the points for that frame as well. Imagemaster can now
  4764.     tween the frames from the start to the middle and then the middle to the
  4765.     end, which will be considerably more accurate.
  4766.  
  4767.  
  4768.  
  4769.  
  4770.  
  4771.                                    -78-                                    
  4772.     You simply continue this process until the resulting morph is controlled
  4773.     well enough to suit you. You can have motion morphs with anything from
  4774.     just the start and end frames defined, to every frame define - it's up to
  4775.     you.
  4776.     
  4777.     Save Project
  4778.     ------------
  4779.     This saves everything to do with this motion morph. It saves the number
  4780.     of frames, the names of the frames, the point files, transparencies,
  4781.     velocities and so on. It is important that you do remember to save your
  4782.     project if you want to be able to re-create it accurately later.
  4783.     
  4784.     Load Project
  4785.     ------------
  4786.     This is used to begin work on a motion project that has been saved. It
  4787.     loads the current frame and point set automatically, so you can begin
  4788.     work right away.
  4789.  
  4790.     Film
  4791.     ----
  4792.     * See filmstrip documentation
  4793.     
  4794.     Do Seq
  4795.     ------
  4796.     The Do Sequence panel provides you with the tools you need to generate a
  4797.     sequence of frames either for final output, or for a test.
  4798.     
  4799.     Although this panel does specify the output stream, it depends on the
  4800.     settings in a number of other locations to get the job done exactly the
  4801.     way you want it.
  4802.     
  4803.     Obviously, one of those things is the proper control points, edges,
  4804.     velocities and tranparencies as defined by you. 
  4805.     
  4806.     Another important element is the resolution of the output frames and the
  4807.     total number of frames to be generated - those values are chosen in the
  4808.     Set Controls panel.  
  4809.     
  4810.     Finally, if you're going to be using Imagemaster's render to Amiga mode
  4811.     capabilities, the settings in the File I/o panel (reached from
  4812.     Imagemaster's main control panel) for Amiga mode, dither, palette and
  4813.     size are all important here. If you're going to be either generating a
  4814.     test sequence for the filmstrip or generating 24-bit output images, you
  4815.     don't have to worry about any of those settings.
  4816.     
  4817.     Having said that, operation of the actual Do Seq panel is very simple.
  4818.     There are text entry fields for the path to the location where you want
  4819.     to save the 24-bit or rendered files to, the name of the file to be
  4820.     generated, and the extension to be added to the filename (none of which
  4821.     you would care about if you're just generating a test to the filmstrip)
  4822.  
  4823.  
  4824.  
  4825.  
  4826.  
  4827.  
  4828.  
  4829.  
  4830.                                    -79-                                    
  4831.     You can generate partial sequences by using the two fields which specify
  4832.     starting and ending frames - for instance, if you're generating a 30-
  4833.     frame morph you can generate frames 5 to 11 by simply setting those
  4834.     values. One huge advantage this provides is the ability to use multiple
  4835.     Amigas on a network to each create a portion of a morph sequence for
  4836.     really big jobs, such as those in film resolution (4000x4000) which take
  4837.     a long time to create. This is true distributed processing!
  4838.  
  4839.     Do 1 Frame
  4840.     ----------
  4841.     The Do 1 Frame facility allows you to generate any single frame from a
  4842.     sequence.
  4843.     
  4844.     Imagemaster can generate the frame as a standard buffer, in which case
  4845.     you'll automatically be returned to the main Imagemaster control panel
  4846.     when the frame is ready.
  4847.     
  4848.     You can also generate a single frame as a "preview", in which case the
  4849.     frame is automatically generated in 320x200 resolution and displayed
  4850.     underneath the other two images in the main morhping display area. Note
  4851.     that the 320x200 resolution is used no matter what resolution you have
  4852.     selected in the set controls panel - this is a convenience that makes it
  4853.     easy to generate a preview at any time. To generate as a preview, you
  4854.     must make sure that the preview button is selected before you either
  4855.     press Done or press the Enter key in the frame text entry field.
  4856.     
  4857.     Examining the text entry field for the frame number will show you that
  4858.     the total number of frames currently set in the Set Controls panel is
  4859.     shown conveniently right here. Make sure that you select a frame from 1
  4860.     to that number. Remember that for a dual-image morph, the center frame
  4861.     number, no matter how long the sequence, is the only frame that has the
  4862.     50% mixed images represented. Remember also that in order to have a
  4863.     proper middle frame, you need to generate an odd number of frames total.
  4864.     
  4865.     Exit
  4866.     ----
  4867.     When you exit the morphing panel, you will be asked if you want to save
  4868.     any changed points. If you're not planning to re-enter this panel, it's a
  4869.     good idea to save your work, of course. If you will be coming back here,
  4870.     then you may choose not to save the points - Imagemaster will retain all
  4871.     point and control information until the program is exited or you
  4872.     specifically change that information in the morphing user interface.
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.                                    -80-                                    
  4890.     Some Morphing Hints
  4891.     ===================
  4892.      
  4893.     Building a morph project in subgroups
  4894.     -------------------------------------
  4895.     Imagemaster allows you to work on a morph in discrete subgroups. An
  4896.     example of this would be where you were morphing a face, and wanted to
  4897.     separate the job into subtasks consisting of the vectors for an eye, for
  4898.     the mouth, for the border of the face.
  4899.     
  4900.     To do this, simply create the first subgroup of vectors, such as the eye.
  4901.     Arrange it to your liking - and then save the points under a name like
  4902.     "eye".  Now, delete all the points. Create your next subgroup for the
  4903.     mouth, and save it under mouth, and again delete the points. Finally,
  4904.     create the subgroup that defines the edge of the face and save that - if
  4905.     this is the last group, you won't need to delete it.
  4906.     
  4907.     What you have now are three sets of points saved which define your
  4908.     complete morph. To perform the morph, load all the subgroups that have
  4909.     been saved to disk but are not yet loaded, and add them to the current
  4910.     set of points by first selecting "discard" and then "Add to Current Set".
  4911.     Then, simply perform the morph as you usually would.
  4912.     
  4913.     To edit any particular subgroup at one time, delete all the current
  4914.     points and then load that subgroup - it's quick, and easy to do.
  4915.     Remember to save your changes when you are done.
  4916.  
  4917.     How Many Points?
  4918.     ----------------
  4919.     We have found that you typically need at least 100 control points to
  4920.     create the most effective morph results. Fewer points tend to leave
  4921.     areas "uncontrolled". More (usually) result in higher output quality.
  4922.     By all means experiment - you may achieve effects we did not expect,
  4923.     which please you.
  4924.  
  4925.  
  4926.     Folds & Tears
  4927.     -------------
  4928.     When generating a morph, you may run into situations where the output
  4929.     image appears to "fold over" onto or into itself. That happens when two
  4930.     control influences contradict each other; an "influence" in this context
  4931.     is the "pull" from one, or more, control points. For instance, if you
  4932.     have an area that is largely uncontrolled but intentionally place an edge
  4933.     with the intent of stopping any image data from moving across a boundry,
  4934.     a fold may occur there if there are enough points nearby to accumulate a
  4935.     strong enough push on the uncontrolled area. Folds are usually easy to
  4936.     prevent, once spotted - just place some control points in the previously
  4937.     uncontrolled area that have exactly the motion you want.
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.                                    -81-                                    
  4949.     Tears occur where points are placed close together, but have extremely
  4950.     differing path force, or "push". The situations that create them are
  4951.     quite complex, and solving a tear usually requires the removal or serious
  4952.     revision of one or more control points - the exact opposite of what you
  4953.     do to repair a fold.
  4954.     
  4955.     A Few Things to Avoid
  4956.     ---------------------
  4957.         * Don't cross edges over each other, ever; only one will function,
  4958.           and which one is going to be totally random, and may change with
  4959.           ANY change to the rest of the morph
  4960.           
  4961.         * Don't mix different velocities in one area; one area will tend to
  4962.           go "under" another if you do, and the results are not at present
  4963.           very predictable (a solution is coming in the future, however)
  4964.         
  4965.         * Try to morph images that have at least some topological similarity.
  4966.           There is a strong tendancy to think that 2-d image morphology can
  4967.           perform the entire set of morphs as 3-d packages can; that's just
  4968.           not true, and never has been. 2-D morphs are very, very powerful,
  4969.           and in many cases can do MOST of what a 3-D package can do with FAR
  4970.           less effort, but some types of motion are simply not doable with a
  4971.           pair of image maps and a pair of topological transforms. What does
  4972.           "similar" mean? That's a good question - one for which we don't
  4973.           have an answer that wouldn't take a chapter or two. We think you'll
  4974.           figure it out, though, as long as we make you aware of the issue.
  4975.           An example would be faces - the vast majority of animal faces on
  4976.           the earth, including the human animal, are highly similar - two
  4977.           eyes, nose, mouth, two ears. Conversely, a human face is not
  4978.           (very) topologically similar to a scientific calculator, and that
  4979.           case might be a pretty difficult morph to make look nicely real.
  4980.     
  4981.  
  4982.  
  4983.  
  4984.  
  4985.  
  4986.  
  4987.  
  4988.  
  4989.  
  4990.  
  4991.  
  4992.  
  4993.  
  4994.  
  4995.  
  4996.  
  4997.  
  4998.  
  4999.  
  5000.  
  5001.  
  5002.  
  5003.  
  5004.  
  5005.  
  5006.  
  5007.                                    -82-                                    
  5008.     List Requester (ARexx-based capability)
  5009.     =======================================
  5010.     This capability allows you to bring up a list requester inside the
  5011.     image processor from which the user can select an entry; once an item
  5012.     is selected, a value (selected by you) is returned to the calling
  5013.     ARexx script or macro.  The list environment for the PI Modules is
  5014.     implemented using this capability.  For more details, see the
  5015.     information describing the list environment for PI Modules. In
  5016.     particular, see the script "launch.rexx" and the file "list.list" for
  5017.     a complete example of how to use this powerful capability.
  5018.     
  5019.     Here is the format of the ARexx command:
  5020.     
  5021.           'listreq "Title text",listfilename,"keywords,etc"'
  5022.     
  5023.                                  ----------
  5024.     
  5025.     Load Image as Secondary
  5026.     =======================
  5027.     This option will appear when you already have a Primary image buffer,
  5028.     it allows you to load the next image in automatically assigned as the
  5029.     secondary buffer. If buffers besides the primary are already loaded,
  5030.     then you will also be presented with the option to replace an old
  5031.     buffer as secondary.
  5032.     
  5033.                                  ----------
  5034.     
  5035.     Load Image as Blend
  5036.     ===================
  5037.     This option will appear when you already have a Primary image buffer,
  5038.     it allows you to load the next image in automatically assigned as the
  5039.     blend buffer. If buffers besides the primary are already loaded,
  5040.     then you will also be presented with the option to replace an old
  5041.     buffer as blend.
  5042.     
  5043.                                  ----------
  5044.     
  5045.     Load Image as Brush
  5046.     ===================
  5047.     This option will appear when you already have a Primary image buffer,
  5048.     it allows you to load the next image in automatically assigned as the
  5049.     brush buffer. If buffers besides the primary are already loaded,
  5050.     then you will also be presented with the option to replace an old
  5051.     buffer as brush.
  5052.     
  5053.                                  ----------
  5054.     
  5055.  
  5056.  
  5057.  
  5058.  
  5059.  
  5060.  
  5061.  
  5062.  
  5063.  
  5064.  
  5065.  
  5066.                                    -83-                                    
  5067.     Co-ordinates
  5068.     ============
  5069.     The image processor now provides you with the option of displaying
  5070.     image X and Y co-ordinates while you work in the display. This option
  5071.     is controlled by a button in the Display panel called ``Show Cords''.
  5072.     
  5073.     There is another button that affects the co-ordinates, also in the
  5074.     Display panel. This one is called ``Drag Relative''. If you select it,
  5075.     then the co-ordinate display will show you the size of the object, or
  5076.     the distance of the pointer from the location you started drawing or
  5077.     selecting. This is useful if you need to create a specific size object.
  5078.     
  5079.     You can use the ``Cords at bottom'' button to switch the display from
  5080.     the top right to the bottom right. The ``s'' key will do the same
  5081.     thing when pressed while you are drawing.
  5082.     
  5083.     The following two ARexx commands allow to to set these conditions up:
  5084.     
  5085.         COORDS <show> [showattop]
  5086.         -------------------------
  5087.             Here, <show> is required, 0 means no, 1 means yes
  5088.         
  5089.         GRID <on> <xgrid> <ygrid> <xoffs> <yoffs>
  5090.         -----------------------------------------
  5091.             Here, <on> is required and should be 1 for on, 0 for off.
  5092.             If <on> is present, then the other four parameters must also be.
  5093.             <xgrid> and <ygrid> define the spacing of the grid. <xoffs>
  5094.             and <yoffs> define the offset from the top left edge of the
  5095.             image where the first vertice of the grid will occur. These
  5096.             last two parameters MUST be values less than the first two.
  5097.     
  5098.                                  ----------
  5099.     
  5100.     Grid
  5101.     ====
  5102.     The image processor provides a grid capability. This is enabled in the Display
  5103.     panel by the ``Use Grid'' button, and when on, allows you to draw only
  5104.     on the selected grid size.
  5105.     
  5106.     Grid size and position is controlled by two buttons in the Display
  5107.     panel called ``Set Grid Interactive'' and ``Set Grid Numeric''.
  5108.     
  5109.     If you use the interactive mode, you are presented with the main
  5110.     image, and you use the mouse to pull out a rectangle. That rectangle
  5111.     sets both the gird size (the same as the rectangle) and its origin
  5112.     (the same as the rectangles corners).
  5113.     
  5114.     If you use the numeric method, you are prompted for an X and Y size,
  5115.     as well as an X and Y origin. The sizes represent the width and height
  5116.     of each grid cell. The origin represents the distance from the upper
  5117.     left hand corner (0,0) of the image that the first ``snap'' point
  5118.     occurs.
  5119.     
  5120.                                  ----------
  5121.  
  5122.  
  5123.  
  5124.  
  5125.                                    -84-                                    
  5126.     Adding Noise
  5127.     ============
  5128.     The function F/x Random Dither allows you to add noise to an image if
  5129.     the region is too smooth for your taste. You can set the amplitude of
  5130.     the noise to your liking. You can select luma or an indpendant RGB
  5131.     dither.
  5132.     
  5133.                                  ----------
  5134.     
  5135.     Clip to exact size (F/x)
  5136.     ========================
  5137.     This capability allows you to specify a rectangular region, for
  5138.     instance 100 by 75, and then clip that exact size region from the
  5139.     primary image.
  5140.     
  5141.     This is useful when you are trying to create a smaller output image
  5142.     from an already existing larger image.
  5143.     
  5144.                                  ----------
  5145.     
  5146.     X-Specs Over-Under
  5147.     ==================
  5148.     This function takes an image that is interleaved for the X-Specs
  5149.     glasses and modifies that image to the X-Specs Over-Under format, used
  5150.     by some X-Specs viewers. The conversion takes place entirely in the
  5151.     Primary buffer.
  5152.     
  5153.                                  ----------
  5154.     
  5155.     X-Specs Interleave
  5156.     ==================
  5157.     This function takes an image that is over-under, that is, has one
  5158.     field over the other, and changes it to the interleaved format.  The
  5159.     conversion takes place entirely in the Primary buffer.
  5160.     
  5161.                                  ----------
  5162.     
  5163.     X-Specs Separate
  5164.     ================
  5165.     This function takes an interleaved X-Specs image in the Primary buffer
  5166.     and separates the two fields into two new buffers. You have the
  5167.     opportunity to name these buffers if you like; if not, they will be
  5168.     called Clip_N and Clip_N+1, where N is the current clip number.
  5169.     
  5170.     Note that this process creates two new buffers which have half the
  5171.     number of lines of the Primary buffer in addition to the Primary
  5172.     buffer, and as a result will require as much additional memory as the
  5173.     Primary buffer consumes.
  5174.     
  5175.                                  ----------
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.  
  5184.                                    -85-                                    
  5185.     F/x User Transforms
  5186.     ===================
  5187.     This is one of the most flexible, and potentially complicated,
  5188.     operations in the entire image processor.
  5189.     
  5190.     In simple terms, this provides you with a graph, where you have the
  5191.     opportunity to specify the resulting output from every level in a
  5192.     buffer. You can cause this function to create the exact operations for
  5193.     contrast, brightness, gamma, negative, histogram equalization and more.
  5194.     
  5195.     You can save (and reload later, of course) any transform curve you
  5196.     create; several are provided as ``boilerplate'' for you to try out. A
  5197.     special function also sets the transform curve to the current curve of
  5198.     the image itself; this can be used to equalize the image.
  5199.     
  5200.     The files that are saved are in a textual format. The file should
  5201.     contain at the beginning the four letters ``TFRM''. Following that
  5202.     first line, you can have one of three things on any line of the file.
  5203.     
  5204.         (1) a blank line, which will be ignored;
  5205.         
  5206.         (2) a line that begins with the ``*'' character, which allows the
  5207.             line to contain any comment;
  5208.             
  5209.         (3) or a number from zero to 255.
  5210.     
  5211.     Only the first 256 lines which contain numbers are read from the
  5212.     file. You can create, or modify, these files with any good text
  5213.     editor (but not a word processor).
  5214.     
  5215.     The curve itself can be drawn with the mouse, smoothed, or as
  5216.     mentioned previously, generated from the image.
  5217.     
  5218.     Note that there is a smaller graph area which contains the current
  5219.     transform curve of the image at the upper left.
  5220.     
  5221.                                  ----------
  5222.     
  5223.     Stretch (Scale, Zoom)
  5224.     =====================
  5225.     The Stretch Clip operation now has the ability to stretch to a
  5226.     particular percentage, as well as the original stretch to a particular
  5227.     pixel size.
  5228.     
  5229.                                  ----------
  5230.     
  5231.     Map to Range
  5232.     ============
  5233.     This tool is similar to the Map To Palette capability, except it uses
  5234.     the current range, and (since ranges may be smaller than 256 colors)
  5235.     the range will be automatically interpolated (smoothed) if the range
  5236.     is 255 or less colors.
  5237.     
  5238.                                 ----------
  5239.  
  5240.  
  5241.  
  5242.  
  5243.                                    -86-                                    
  5244.     Color Balance
  5245.     =============
  5246.     Color Balance is a tool that re-balances the entire image, based upon
  5247.     a region you specify.
  5248.     
  5249.     The principle underlying Color Balance is the same as that used by
  5250.     Grey and White balance operations, but with a twist.
  5251.     
  5252.     The assumption made is that you can (by observing) locate an area on
  5253.     the image that you want to be tinted to an exact shade of a particular
  5254.     color. If you can, you identify this area using the region select
  5255.     tools, and the function will re-balance the entire image based upon
  5256.     that information.
  5257.     
  5258.     What you end up with is a tinted image; similar to using a dye when
  5259.     developing film.
  5260.     
  5261.                                  ----------
  5262.  
  5263.     Numeric Area Selection
  5264.     ----------------------
  5265.     This is an area selection tool which allows you to create a selected
  5266.     rectangle using numbers instead of the interactive tools. This provides
  5267.     a very specific area selection for precision operations.
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.                                    -87-                                    
  5303.     Black Balance
  5304.     =============
  5305.     Black Balance is a tool that re-balances the entire image, based upon
  5306.     a region you specify.
  5307.     
  5308.     The principle underlying Black Balance is the same as that used by
  5309.     Grey and White balance operations.
  5310.     
  5311.     The assumption made is that you can (by observing) locate an area on
  5312.     the image that should have been black. If you can, you identify this
  5313.     area using the region select tools, and the function will re-balance
  5314.     the entire image based upon that information.
  5315.     
  5316.     This is very effective for images that have low contrast or coloration.
  5317.     
  5318.                                  ----------
  5319.     
  5320.     Force Dynamic
  5321.     =============
  5322.     This operation is similar to the Dynamic Range operation. To
  5323.     understand the difference, we need to look at Dynamic Range.
  5324.     
  5325.     The Dynamic Range operation examines the entire image, finds the
  5326.     darkest and lightest regions, and then linearly expands the contrast
  5327.     and moves the brightness center appropriately. This results in the
  5328.     maximum possible contrast without losing any image information.
  5329.     
  5330.     Force Dynamic does the same thing, except that the examination for
  5331.     maximum and minimum regions is only performed in the region you
  5332.     specify, not the entire image. As a result, Force Dynamic can indeed
  5333.     lose image data.
  5334.     
  5335.     One possible use would be for an image that was contained as a sub-
  5336.     image within another --- for instance, a picture on a television in a
  5337.     larger image. You can use Force Dynamic on the TV image, and that
  5338.     image will be brought to its maximum non-destructive contrast (and
  5339.     portions, or all of the rest of the image may be seriously damaged).
  5340.     
  5341.                                  ----------
  5342.     
  5343.     X-Specs Conversion
  5344.     ==================
  5345.     This operation allows you to create an X-Specs interleave format image
  5346.     from the image in the Primary buffer and the image in the Secondary
  5347.     buffer. You can even do this with dissimilar size images!
  5348.     
  5349.                                  ----------
  5350.  
  5351.  
  5352.  
  5353.  
  5354.  
  5355.  
  5356.  
  5357.  
  5358.  
  5359.  
  5360.  
  5361.                                    -88-                                    
  5362.     Absolute Resample - no anti-aliasing
  5363.     ====================================
  5364.     The stepped Zoom operation now allows you to reduce an image's
  5365.     resolution without averaging neighboring pixels; this was added so
  5366.     that the automatic expansion of HAM-E images to hi-resolution pixels
  5367.     (with synthesis of intervening pixels using the same method as our
  5368.     advanced hardware Anti-Alias engine) could be reversed without any
  5369.     unintended smoothing of the image.
  5370.     
  5371.     Suggested use is to run it on the horizontal axis only.
  5372.     
  5373.                                  ----------
  5374.     
  5375.     Merge with Render from Range
  5376.     ============================
  5377.     This operation will take a range of colors you have defined in the
  5378.     palette and render the secondary image into the primary image using
  5379.     only those colors. The operation is similar to a merge, in that the
  5380.     entire secondary image is rendered into the region you specify.
  5381.     
  5382.     For instance, if you have a 4 color range that consists of black,
  5383.     white, and two intermediate grey levels, then that's how the image
  5384.     will be placed into the primary image. This allows you to use
  5385.     unlimited creativity in color compositions.
  5386.     
  5387.     One option is to use dither when rendering using the range colors.
  5388.     Dither effectively increases the available color space, and images
  5389.     will look more accurate, as well as somewhat ``rougher''.
  5390.     
  5391.     Another option is to turn ``Excursion Off'' for the render. This is
  5392.     only effective if dither is on; the effect is to increase the number
  5393.     of colors available in dither, but it will also make the iamge appear
  5394.     even rougher.
  5395.     
  5396.     Another option allows you to select a stretched merge, or a sub-
  5397.     sampled merge.
  5398.     
  5399.     You can use blending in the normal fashion with this operation, also.
  5400.     You should be aware that when blending is on, more colors are used to
  5401.     composite the image, as various levels of the colors in the range are
  5402.     blended with the colors in the primary image.
  5403.     
  5404.                                  ----------
  5405.  
  5406.  
  5407.  
  5408.  
  5409.  
  5410.  
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416.  
  5417.  
  5418.  
  5419.  
  5420.                                    -89-                                    
  5421.     Additional Render Controls and Capabilties
  5422.     ==========================================
  5423.     The image processor's Amiga mode rendering procedures have been
  5424.     completely re-written during the production of revisions 7.02 and
  5425.     7.03. We are confident that our rendering capabilities now meet or
  5426.     exceed those of any other product currently available for final image
  5427.     quality. Comparison renders performed at Black Belt Systems using the
  5428.     latest releases of commercial Amiga packages which also render to
  5429.     Amiga mode images provide the basis for this confidence. If you have
  5430.     other software which performs these tasks, we encourage you to make
  5431.     the same comparisons. Knowing what package performs better in this
  5432.     regard will serve you well as your create your Amiga mode images.
  5433.     
  5434.     Details
  5435.     =======
  5436.     The control "Turn Off Excursion Limit" may now be used to modify the
  5437.     quality of most render modes. It works with dithering to provide a
  5438.     larger color space. If you turn off the dither when rendering, this
  5439.     has no applicability. If you turn excursion off, the dither operations
  5440.     can reach more colors in the color space. The image may appear rougher
  5441.     as a result. We suggest you try things both ways before committing to
  5442.     a final render. Most images will be better with this button depressed.
  5443.     
  5444.     All Amiga render modes now have multiple dither choices for your
  5445.     rendering convenience; you may currently choose from:
  5446.     
  5447.      No Dither ------- Uses the nearest color in the palette; contours.
  5448.          
  5449.      2-Point EDD ----- Most color accuracy; roughest image. Heavy dithering
  5450.     >Floyd-Steinberg - Best compromise; not too rough, good color accuracy 
  5451.      Jarvis ---------- A bit smooth; begins to show contouring (mach bands)
  5452.      Stucki ---------- Extremely smooth; contouring is quite evident
  5453.      Random F-S ------ Rough; good color accuracy, tends to hide errors
  5454.      Dual Random F-S - Not so rough; good color accuracy. Less clumping.
  5455.     
  5456.     You may modify any dither method with either Left->Right scan or
  5457.     Serpentine scan. Serpentine is almost always better.
  5458.     
  5459.     For low color renders that pick new color registers, 16 colors for
  5460.     instance, you should try "Chekov Forcing" and see if your image
  5461.     renders better with it on. This will cause the color picking code to
  5462.     choose slightly different registers which will help portions of the
  5463.     image that have color "hot spots" to render more accurately.
  5464.     
  5465.     Our suggestion for the best render quality for most images (there will
  5466.     be a few exceptions to this) is to use the Floyd-Steinberg dither,
  5467.     serpentine scan, excursion limiting off. Chekov forcing is a 50-50
  5468.     kind of thing. Sometimes it helps a lot, but it may make the render
  5469.     worse.
  5470.     
  5471.                                  ----------
  5472.  
  5473.  
  5474.  
  5475.  
  5476.  
  5477.  
  5478.  
  5479.                                    -90-                                    
  5480.     Compose with Logical OR
  5481.     =======================
  5482.     This image composition operation will combine the Secondary image into
  5483.     the Primary image using the logical OR operation.
  5484.     
  5485.                                  ----------
  5486.     
  5487.     Compose with Logical AND
  5488.     ========================
  5489.     This image composition operation will combine the Secondary image into
  5490.     the Primary image using the logical AND operation.
  5491.     
  5492.                                  ----------
  5493.     
  5494.     Multiple Blend Technique Application
  5495.     ====================================
  5496.     You can now use any of the three blending techniques in combination
  5497.     with each other. The manual implies that the blending techniques are
  5498.     independant and exclusive. While you can still use them independantly,
  5499.     you can also use them together in any combination.
  5500.     
  5501.                                  ----------
  5502.     
  5503.     Smooth Edge Blending as a Percentage
  5504.     ====================================
  5505.     The smooth edge blending capability now has the ability to be
  5506.     specified as a percentage of the region's size. The specify by number
  5507.     of pixels is still intact, of course. This will help you use the
  5508.     technique on larger images, and also allows you to apply similar
  5509.     looking edge blends without having to re-specify the blend lengths.
  5510.     
  5511.                                  ----------
  5512.     
  5513.     Masks
  5514.     =====
  5515.     The image processor can now save masks with images, contrary to the
  5516.     statement in the printed manual that it does not. These masks are in a
  5517.     proprietary format readable by our image processing software, and will
  5518.     be (should be) ignored by other IFF readers automatically if they are
  5519.     written correctly.
  5520.     
  5521.     The PMBC Public Interface module will also save and load masks with
  5522.     images.
  5523.     
  5524.                                  ----------
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531.  
  5532.  
  5533.  
  5534.  
  5535.  
  5536.  
  5537.  
  5538.                                    -91-                                    
  5539.     Color Separations
  5540.     =================
  5541.     
  5542.     General
  5543.     -------
  5544.     The image processor now has full RGB, CMY and CMYK color separation
  5545.     capability for both 12 and 24 bit images. The color separation tool is
  5546.     located in the File I/O panel; it is extremely flexible and allows you
  5547.     to save multiple control parameter settings for your various color
  5548.     separation needs.
  5549.     
  5550.     Color separations are positive, and so where you expect a lot of ink
  5551.     to be on the paper, the image on screen will have the most color
  5552.     (``ink''). If you use a color map, the image will be the color of the
  5553.     separation (cyan, for instance) where the paper is white, which is
  5554.     somewhat counter-intuitive, and it will be black where it is maximum
  5555.     cyan.
  5556.     
  5557.                                  ----------
  5558.     
  5559.     Under Color Removal
  5560.     -------------------
  5561.     This control sets the amount of color (cyan, magenta, yellow) ink
  5562.     removed when they can be replaced by black.
  5563.     
  5564.                                  ----------
  5565.     
  5566.     Gray Component Replacement
  5567.     --------------------------
  5568.     This control sets the amount of black ink that replaces what was
  5569.     removed by the Under Color Removal tool.
  5570.     
  5571.                                  ----------
  5572.     
  5573.     Magenta Ink Mix Correction
  5574.     --------------------------
  5575.     This control compensates for impure ink colors, IE, the cyan ink is
  5576.     not pure cyan. The default value is set for Inkum Inks, which we
  5577.     strongly recommend for inkjet use.
  5578.     
  5579.                                  ----------
  5580.     
  5581.     Yellow Ink Mix Correction
  5582.     -------------------------
  5583.     This control compensates for impure ink colors, IE, the magenta ink is
  5584.     not pure magenta. The default value is set for Inkum Inks, which we
  5585.     strongly recommend for inkjet use.
  5586.     
  5587.                                  ----------
  5588.     
  5589.     Output 12 Bit
  5590.     -------------
  5591.     This setting allows you to create 12 bit color separations, needed for
  5592.     some Amiga DTP programs. You should always use 24 bit separations for
  5593.     professional work.
  5594.     
  5595.                                  ----------
  5596.  
  5597.                                    -92-                                    
  5598.     Output 24 Bit
  5599.     -------------
  5600.     The setting allows you to create 24 bit accurate color separations.
  5601.     
  5602.                                  ----------
  5603.     
  5604.     Gray CMAP
  5605.     ---------
  5606.     This section causes a grey CMAP to be placed in the output file, which
  5607.     is required for proper color separation operation. The alternative,
  5608.     Color CMAP, makes the images easier to understand and view, but is not
  5609.     useful for real separations.
  5610.     
  5611.     Color CMAP
  5612.     ----------
  5613.     This places a color CMAP in the separation file, which will let you
  5614.     visually cue in to how much ink will be used when observing the files.
  5615.     Do not use this settings for final work; You must place a Gray CMAP in
  5616.     the file for it to be useful.
  5617.     
  5618.                                  ----------
  5619.     
  5620.     Set To Default
  5621.     --------------
  5622.     This control forces the Under Color Removal, Gray Component Replacement,
  5623.     Magenta Ink Correct, and Yellow Ink Correct to their respective default
  5624.     values.
  5625.     
  5626.     Set To No Correction
  5627.     --------------------
  5628.     Just as it says. The colors are created via a straight mathematical
  5629.     transform with no correction for the shortcomings of inks and paper.
  5630.     
  5631.     Generate CMYK Separation
  5632.     ------------------------
  5633.     This produces four output files, cyan, magenta, yellow and black. This
  5634.     is what you will typically use for professional separations.
  5635.     
  5636.     Generate CMY Separation
  5637.     -----------------------
  5638.     This produces three output files, cyan, magenta and yellow. This is
  5639.     what you will typically use for three color printer ribbons.
  5640.     
  5641.     Generate RGB Separation
  5642.     -----------------------
  5643.     This allows you to separate the image into it's respective R, G and B
  5644.     components. We don't know what use it is, but others have this
  5645.     capability, so we added it also.
  5646.  
  5647.  
  5648.  
  5649.  
  5650.  
  5651.  
  5652.  
  5653.  
  5654.  
  5655.  
  5656.                                    -93-                                    
  5657.     Save Settings
  5658.     -------------
  5659.     This allows you to save the current settings of the Color Separation
  5660.     panel. This is very useful for situations where you'll be outputting
  5661.     to various print agencies or printers, and the settings are different.
  5662.     
  5663.     Note that if you save a settings file and name it ``Default.csep'', it
  5664.     will be automatically loaded when the software starts. It should be
  5665.     located either in the current directory or drawer (not recommended) or
  5666.     in the s: assignment (highly recommended).
  5667.     
  5668.                                  ----------
  5669.     
  5670.     Load Settings
  5671.     -------------
  5672.     This loads any settings that you saved.
  5673.     
  5674.                                  ----------
  5675.     
  5676.     Extensions
  5677.     ----------
  5678.     You can preset the extensions used on the color separation files if
  5679.     you like, using the four text entry fields provided.
  5680.     
  5681.                                  ----------
  5682.     CMYK and RGB Recombination
  5683.     ==========================
  5684.     Recombinations are done with the compose panel. The general idea here
  5685.     is that you prepare a blank buffer (White for CMYK, Black for RGB) to
  5686.     receive the recombined image. Each portion of the image to be
  5687.     recombined is loaded as a secondary buffer, then processed using the
  5688.     matching recombination function. For instance, to recombine a CMY
  5689.     image, you would create an all-white buffer of the size you want the
  5690.     output image. Now, load the Cyan (C) portion of the separated image.
  5691.     Make it the secondary and recombine that portion. Now load the M and Y
  5692.     portions and do the same.
  5693.     
  5694.     For CMY or CMYK recombination, you need to know what the UCR, GCR and
  5695.     ink correction settings were or the image colors will come out wrong.
  5696.     To do this with an RGB image, the process is the same except for one
  5697.     thing; you need to start with an all-Black buffer instead of a white
  5698.     one. This is technically because RGB colors are additive and CMYK
  5699.     colors are subtractive.
  5700.  
  5701.  
  5702.  
  5703.  
  5704.  
  5705.  
  5706.  
  5707.  
  5708.  
  5709.  
  5710.  
  5711.  
  5712.  
  5713.  
  5714.  
  5715.                                    -94-                                    
  5716.     Genlocking
  5717.     ==========
  5718.     Creating a Transparent Region
  5719.     -----------------------------
  5720.     Rendering now allows you to specify Transparency for genlocking by
  5721.     marking a region that you do not want to be transparent. So, if you
  5722.     have drawn a graphic you want to appear in the top right of the frame,
  5723.     just move the object there using the usual tools, then when you
  5724.     render, just define that object as the ``non-transparent'' region. The
  5725.     entire remaining portion of the image will be drawn using the Amiga
  5726.     (or HAM-E) ``color zero'', which will make it transparent for
  5727.     genlocking purposes.
  5728.     
  5729.     Keep in mind that not using the color zero color can substantially
  5730.     reduce the render quality of an image, especially when you are using
  5731.     fewer colors.
  5732.     
  5733.                                  ----------
  5734.     
  5735.     Color-Keying: Transparency by Color
  5736.     -----------------------------------
  5737.     You can also create a genlock (transparent) region by selecting the
  5738.     Color Gen Mask button. This will cause the image to have transparent
  5739.     (genlock) areas wherever the color in the image matches the color
  5740.     selected in the process panel using "define color". The color radius
  5741.     also affects the genlock area generation.
  5742.     
  5743.     An example would be where you have a picture of a model you have taken
  5744.     against an aqua background. Select the aqua area as the "defined
  5745.     color", and then use Color Gen Mask to build the genlocked image. The
  5746.     image will be transparent everywhere but where the model is.
  5747.     
  5748.     Of course, if the model is wearing any aqua color, or has aqua eyes,
  5749.     that region will be transparent as well. You can fix this up by
  5750.     changing the colors of that region using the paint tools.
  5751.     
  5752.     Keep in mind that not using the color zero color can substantialy
  5753.     reduce the render quality of an image, especially when you are using
  5754.     fewer colors.
  5755.     
  5756.                                  ----------
  5757.     
  5758.     Creating Non-transparent Renders
  5759.     --------------------------------
  5760.     If you want a render to be totally non-transparent (that is, doesn't
  5761.     use the Amiga color zero anywhere), then select the "Identify the
  5762.     genlock non-transparent area" button an choose "entire image" as the
  5763.     region. The entire image will be non-transparent.
  5764.     
  5765.     Keep in mind that not using the color zero color can substantialy
  5766.     reduce the render quality of an image, especially when you are using
  5767.     fewer colors.
  5768.     
  5769.                                  ----------
  5770.  
  5771.  
  5772.  
  5773.  
  5774.                                    -95-                                    
  5775.     DCTV
  5776.     ====
  5777.     
  5778.     Compatibility
  5779.     -------------
  5780.     The image processor can now load DCTV files from the 1.1 version of
  5781.     the DCTV software as well as the original software format and the
  5782.     library format.
  5783.     
  5784.     Filtering
  5785.     ---------
  5786.     The DCTV library allows you to filter the RGB image that is used to
  5787.     create the final DCTV image. If you select the "Use DCTV RGB Filter"
  5788.     button when you render DCTV images, this filter is called into action.
  5789.     Again, this function is entirely dependant upon the code in the
  5790.     DCTV.library software. Black Belt Systems is not responsible for
  5791.     any image degradation you may experience in the final DCTV image.
  5792.     
  5793.                                  ----------
  5794.     
  5795.     Brushes
  5796.     =======
  5797.     
  5798.     Transparent Brush Cutting
  5799.     -------------------------
  5800.     When you select "Cut Out New Brush", you will now get a two button
  5801.     panel that asks you if you'd like to do this as a transparent
  5802.     operation or just as a solid area.
  5803.     
  5804.     If you do select transparency, the transparent portion of the cut will
  5805.     occur where the background color (See Color Definition, next) is
  5806.     similar to the color in the cut region. The color radius affects the
  5807.     transparent region calculations.
  5808.     
  5809.                                  ----------
  5810.     
  5811.     Color Definition
  5812.     ================
  5813.     
  5814.     Adjust Foreground Color
  5815.     -----------------------
  5816.     This new option within the paint panel allows you to immediately
  5817.     adjust the foreground color using RGB controls.
  5818.     
  5819.                                  ----------
  5820.     
  5821.     Sample to Foreground Color
  5822.     --------------------------
  5823.     This new option within the paint panel allows you to immediately
  5824.     adjust the foreground color by selecting a region on the Primary image.
  5825.     
  5826.                                  ----------
  5827.  
  5828.  
  5829.  
  5830.  
  5831.  
  5832.  
  5833.                                    -96-                                    
  5834.     Adjust Background Color
  5835.     -----------------------
  5836.     This new option within the paint panel allows you to immediately
  5837.     adjust the background color using RGB controls.
  5838.     
  5839.                                  ----------
  5840.     
  5841.     Sample to Background Color
  5842.     --------------------------
  5843.     This new option within the paint panel allows you to immediately
  5844.     adjust the background color by selecting a region on the Primary image.
  5845.     
  5846.                                  ----------
  5847.     
  5848.     Palette Mapping
  5849.     ===============
  5850.     In the main paint panel there is a new option called "Palette
  5851.     Mapping".  This function is for artists who wish to change colors
  5852.     which have already been painted with, from the palette or from a range.
  5853.     
  5854.     To do this:-
  5855.     
  5856.          (1) Copy the range that you have drawn with into the
  5857.              current palette,
  5858.     
  5859.          (2) Choose "Palette Mapping" and "Establish Map", you will
  5860.              then be able to select the area to be affected,
  5861.     
  5862.          (3) Adjust the colors in the palette to the new colors
  5863.              you want,
  5864.     
  5865.          (4) Choose "Palette Mapping" and "Apply Palette Changes";
  5866.              This will change the drawn colors in the image in the
  5867.              same way you changed the palette colors.
  5868.     
  5869.     Note that the "Establish Map" function only works on colors that
  5870.     exactly match those in the palette.  Also, "Toss Map" can be used to
  5871.     free up some memory after you have finished Palette Mapping.
  5872.     
  5873.                                  ----------
  5874.     
  5875.     Paint Settings To Disk
  5876.     ======================
  5877.     In the Paint Panel are Load and Save Paint Settings buttons.  This
  5878.     saves all the settings you are then using to paint with including the
  5879.     foreground and background colors.
  5880.     
  5881.                                  ----------
  5882.  
  5883.  
  5884.  
  5885.  
  5886.  
  5887.  
  5888.  
  5889.  
  5890.  
  5891.  
  5892.                                    -97-                                    
  5893.     New fill modes
  5894.     ==============
  5895.     
  5896.     Brush Emboss
  5897.     ------------
  5898.     This fill mode will emboss the image with a pattern derived from the
  5899.     brightness of the current brush. The fill proceeds in a regular
  5900.     rectangular fashion.
  5901.     
  5902.                                  ----------
  5903.     
  5904.     Brush Brick Emboss
  5905.     ------------------
  5906.     This fill mode is similar to Brush Emboss, but every other line of
  5907.     repeated brush patterns is offset by 1/2 the brush width, resulting in
  5908.     a fill that has the 50% offset characteristic of brick architecture.
  5909.     
  5910.                                  ----------
  5911.     
  5912.     Poly-range Fills
  5913.     ----------------
  5914.     Polyrange fills are a new and unusual type of fill developed by Black
  5915.     Belt specifically for our image processing software.
  5916.     
  5917.     The best way to describe a polyrange is to begin with a polygon. Let's
  5918.     take a polygon in the form of a triangle as our example. A triangle
  5919.     has three points. What polyfill will do is assign a color to each of
  5920.     those points from the range you supply, assuming only that the range
  5921.     you supply has three points.
  5922.     
  5923.     So, if you have a range that is red, green, blue, yellow... etc, then
  5924.     the triangle will have red, green and blue assigned to the three
  5925.     points of the corners. Now, there are two different ways that
  5926.     polyranges will work, depending on the Smooth Range fill setting.
  5927.     
  5928.     If smooth range fill is off, then the pixels inside the triangle will
  5929.     be filled according to the vertex (point) they are nearest to. So,
  5930.     pixels near the red vertex will also be red, and so on.
  5931.     
  5932.     If smooth range fill is on, then the pixels inside the triangle will
  5933.     be filled with all three colors, proportionally to how near they are
  5934.     to that particular vertex. So, for pixels right at the red vertex, you
  5935.     get red. For one halfway between red and green, but far away from
  5936.     blue, you'll get a yellow color.
  5937.     
  5938.     Keep in mind that polyranges can work with any number of points, so
  5939.     you can make some really spectacular fills. Note that large numbers of
  5940.     vertexes will cause long computation times, however.
  5941.     
  5942.     Rectangles and full screen polyrange fills act like four vertex
  5943.     polygons, and so require a four color range. If you have less colors
  5944.     in the range than there are vetexes in the polygon, then the range
  5945.     will repeat along the vertexes untill all vertexes are assigned a
  5946.     color.
  5947.     
  5948.                                  ----------
  5949.  
  5950.  
  5951.                                    -98-                                    
  5952.     Freehand and Elliptical Polyranges
  5953.     ----------------------------------
  5954.     We've done something wild, here. Since a freehand area or an ellipse
  5955.     are not composed of vertexes as polygons, polyarcs, rectangles and so
  5956.     on are, we needed a different way to apply polyranges to them.
  5957.     
  5958.     What we have done is to find out the length of the edge of the freehand
  5959.     area or ellipse, and then we distribute the entire range of colors
  5960.     around the perimeter of the region.
  5961.     
  5962.     Let's say you have a 6 color range (you might want to try this, the
  5963.     results are stunning!) or Red, Yellow, Green, Aqua, Blue, Purple.
  5964.     These colors are placed at points equidistant from each other around
  5965.     the perimiter of the object. So, if you draw a very round ellipse,
  5966.     with smooth range on, you get a gorgeous ``color wheel''. Freehand
  5967.     areas provide very strange and beautiful results.
  5968.     
  5969.     Again, be careful not to use ranges with very many colors unless you
  5970.     are prepared to wait more time.
  5971.     
  5972.                                  ----------
  5973.     
  5974.     Dual Range Fills
  5975.     ================
  5976.     The image processor now provides for a new type of fill that uses two
  5977.     separate color ranges to derive fill colors. These can be utilized
  5978.     once you have selected two ranges; you can select both from the paint
  5979.     panel, the new button to pick the secondary range is called ``Select
  5980.     Second Range''. Once you have picked the two ranges, you can use the
  5981.     following fill tools:
  5982.     
  5983.     Dual Horizontal Range
  5984.     ---------------------
  5985.     This fill mode places the two ranges above, and below the region to be
  5986.     filled. The pixels in the filled area are derived as a function of the
  5987.     distance between the top range, and the bottom range; they change
  5988.     horizontally across the filled region as they utilize different pixels
  5989.     from the two adjacent ranges.
  5990.     
  5991.     Dual Vertical Range
  5992.     -------------------
  5993.     This fill mode places the two ranges left, and to the right of the
  5994.     region to be filled. The pixels in the filled area are derived as a
  5995.     function of the distance between the left range, and the right range;
  5996.     they change vertically across the filled region as they utilize
  5997.     different pixels from the two adjacent ranges.
  5998.     
  5999.     Dual Horizontal Warp Range
  6000.     --------------------------
  6001.     This fill mode places the two ranges above, and below the region to be
  6002.     filled. The pixels in the filled area are derived as a function of the
  6003.     distance between the top range, and the bottom range; they change
  6004.     horizontally across the filled region as they utilize different pixels
  6005.     from the two adjacent ranges. The ranges are ``pinched'' together near
  6006.     the edges of the filled region.
  6007.  
  6008.  
  6009.  
  6010.                                    -99-                                    
  6011.     Dual Vertical Warp Range
  6012.     ------------------------
  6013.     This fill mode places the two ranges left, and to the right of the
  6014.     region to be filled. The pixels in the filled area are derived as a
  6015.     function of the distance between the left range, and the right range;
  6016.     they change vertically across the filled region as they utilize
  6017.     different pixels from the two adjacent ranges. The ranges are
  6018.     ``pinched'' together near the edges of the filled region.
  6019.     
  6020.                                  ----------
  6021.     Dual Range Example
  6022.     ------------------
  6023.     You need to create two different ranges. You can use as few as two
  6024.     colors in the first range, and five in the second range. You're going
  6025.     to be using the "Smooth Range" modifier, so you'll get a beautiful
  6026.     spread of colors anyway.
  6027.     
  6028.     Make the first range all dark blue. That's right, NO color change in
  6029.     the range.
  6030.     
  6031.     Make the second range go from aqua to orange to aqua. That's easy to
  6032.     do, just set one end of the range of colors to orange, one to aqua,
  6033.     and choose mirror range.
  6034.     
  6035.     From the palette display, select the aqua-orange-aqua range and place
  6036.     this in the range panel. Return to the palette, and then place the
  6037.     Blue-Blue range in the range panel. Since the Blue-Blue is the last
  6038.     range you entered, it is the current range. Now, exit back to the
  6039.     paint panel.
  6040.     
  6041.     Here, select the Second range (the aqua-orange-aqua one) using the
  6042.     control provided for that purpose.
  6043.     
  6044.     Go into the Fill panel, select "Smooth Range" and also select the fill
  6045.     mode as "Dual Horizonal Range". In this context, "Horizontal" means
  6046.     the way that the range lies on the image - NOT the way that the fill
  6047.     occurs. Here is how the fill will work:
  6048.     
  6049.                           Top of fill
  6050.     Range 1    Blue <----------------------> Blue
  6051.                       |        |         |
  6052.                       |        |         |
  6053.                       |        |         |         Filled area where color
  6054.                       |        |         |     <-- changes smoothly between
  6055.                       |        |         |         the two adjacent ranges
  6056.                       |        |         |
  6057.                       |        |         |
  6058.     Range 2    Aqua <-------Orange---------> Aqua
  6059.                         Bottom of fill
  6060.     
  6061.     You're ready to try the fill itself now. Select a rectangular region
  6062.     and fill it, or do the entire image if you'd like.
  6063.     
  6064.     You should have blue at the top, and this should fade down to an
  6065.     orange glow in the middle where the sun has just dissapeared.
  6066.     
  6067.                                  ----------
  6068.  
  6069.                                    -100-                                   
  6070.     Any Angle Range Fill
  6071.     --------------------
  6072.     This powerful fill mode consists of an angle entry field and a mode
  6073.     button in the fill modes panel.
  6074.     
  6075.     You can specify any possible angle, either positive or negative.
  6076.     
  6077.                                  ----------
  6078.     
  6079.     DPI operations
  6080.     ==============
  6081.     There are several operations that work within the concept of "Dots-
  6082.     Per-Inch".  One is accessed in the Buffer panel; it allows you to "Set
  6083.     Current DPI and Size" for a buffer. For instance, you can say, this
  6084.     buffer is 8.5x11, or that it is 200 DPI. There is an operation in the
  6085.     F/x panel that allows you to rescale using DPI as the criteria. You
  6086.     may find this particularly useful if you are into printed graphics.
  6087.     The distance calculator also understands DPI very well.
  6088.     
  6089.                                  ----------
  6090.     
  6091.     Initialize buffer to Color
  6092.     ==========================
  6093.     This brings up the RGB panel and allows you to create the buffer
  6094.     filled with a specific color.
  6095.     
  6096.                                  ----------
  6097.     
  6098.     Setup Panel
  6099.     ===========
  6100.     There is now a setup button in the image processor that provides you
  6101.     with the ability to specify Interlace or Non-interlace when the
  6102.     program starts.
  6103.     
  6104.                                  ----------
  6105.     
  6106.     Information Panel
  6107.     =================
  6108.     Other Buffers
  6109.     -------------
  6110.     This tool allows you to obtain X:Y pixel information, total memory
  6111.     used, parent, and other information about any buffer in the system.
  6112.     
  6113.                                  ----------
  6114.     
  6115.     Display Panel
  6116.     =============
  6117.     Fast HAM draw mode
  6118.     ------------------
  6119.     This display mode uses a pre-calculated palette for fast drawing.
  6120.     Future updates of the image processing software will concentrate on
  6121.     improving the speed of this tool; it will be the very first to be re-
  6122.     coded into assembly language.
  6123.     
  6124.                                  ----------
  6125.  
  6126.  
  6127.  
  6128.                                    -101-                                   
  6129.     Dither Off
  6130.     ==========
  6131.     The display can now be generates without dither, to reproduce images
  6132.     which already have dither in them more effectively. This option is not
  6133.     normally expected to be used.
  6134.     
  6135.     Public Interface Modules
  6136.     ========================
  6137.     
  6138.     Support Summary
  6139.     ---------------
  6140.     Readers: Targa, JFIF/JPEG, IFF Palettes, RGB8, RGBN, ANIM OPT-5,
  6141.              PMBC, Raw, SHAM, DHR, ARZ0, ARZ1, AHAM, DKB Trace, NJPL
  6142.              (Mac or IBM a & b), UPB8, DEC "IRAW" format (1, 8 and
  6143.              24-bit chunky format), Rendition-6rn, Rendition ALPHA-
  6144.              channel data, PCX files, Board Master PCB files, HotLinks
  6145.              Subscribe, & HotLinks Info (HotLinks is from SoftLogic,
  6146.              Inc).
  6147.  
  6148.     Writers: Targa, JFIF/JPEG, RGB8, PMBC, Raw, VistaPro binary
  6149.              altitude maps, ANIM OPT-5, Rendition-6rn, Hotlinks
  6150.              Publish, Hotlinks Update.
  6151.  
  6152.     Effects: Tesselate, Koch fractal Snowflake, Graph generation,
  6153.              Erode/Dilate, Detailed Histogram Reporter,
  6154.              transision generator (used in sequence generation
  6155.              only).
  6156.  
  6157.     Display: GVP IV24, DMI Resolver, Firecracker 24; Harlequin;
  6158.              also auto-display for FC24, DMI Resolver and Harlequin.
  6159.              Also BCD-2000A controller driver scripts for single
  6160.              frame recording animations from the IV24 board.
  6161.  
  6162.     Capture: None available from us at this time; note that an EPSON
  6163.              ES300c driver is available from: Metadigm at
  6164.              (714) 253 2828. The driver may be purchased as an upgrade
  6165.              from the ASDG ES300c driver, if you own it, or as a new
  6166.              product. Metadigm operates some rather strange hours at
  6167.              the time this was written, so don't discouraged if you don't
  6168.              get ahold of them on the first call - keep trying! We
  6169.              endorse this scanner driver very highly; we use it every day.
  6170.  
  6171.     Introduction
  6172.     ------------
  6173.     This portion of the document describes, very briefly, each of the Public
  6174.     Interface (PI) modules which are supplied with Imagemaster. All of these
  6175.     modules are installed by the procedure on the main release disk.  In
  6176.     order to use the PI Modules described here, you must complete that
  6177.     installation.
  6178.  
  6179.  
  6180.  
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.                                    -102-                                   
  6188.     Using PI Modules
  6189.     ----------------
  6190.     Once the PI Modules have been installed, using them is very, very
  6191.     easy.  PI Modules are grouped into five logical ``classes'' of
  6192.     operations:
  6193.     
  6194.         F1 - Load ------ decode and load a specific file format
  6195.         F2 - Save ------ encode and save a specific file format
  6196.         F3 - Operate --- perform a function on an image in Imagemaster
  6197.         F4 - Capture --- fetch an image from a device such as a scanner
  6198.         F5 - Generate -- display an image devices such as a 24-bit card
  6199.     
  6200.     To use a module from one of these classes within Imagemaster, you
  6201.     simply press one of five function keys, F1 through F5, as shown at the
  6202.     left of the list in the previous paragraph. After pressing a function
  6203.     key, you will be presented with a list of the available PI Modules of
  6204.     that particular type - pressing F1 brings up a list of all the image
  6205.     reader types available. Simply click upon the reader module you wish
  6206.     to use and select ``done'', or double-click on the module; either way
  6207.     starts the reader running.
  6208.     
  6209.     In the following portion of this document, we will briefly explain
  6210.     each of the modules for all five classes so that you have a reference
  6211.     for the types of operations each PI Module performs; also, each of the
  6212.     five classes will be explained further.
  6213.     
  6214.     Load Modules (F1)
  6215.     -----------------
  6216.     Load Modules are used to decode and load images into Imagemaster, from
  6217.     files which have been saved in unusual or alien (from another machine)
  6218.     file formats.  Load Modules present you with one (or more, in some
  6219.     cases) file requester(s) and allow you to specify where in your
  6220.     computer (on which disk and in which directory) the file is, so that
  6221.     the reader can find it and load it.
  6222.     
  6223.         HotLinks Subscribe
  6224.         ==================
  6225.         The subscribe module allows you to read in a hotlinks ILBM image.
  6226.         After invoking the subscribe module, you will be presented with the
  6227.         hotlinks subscribe requester. The particulars of this and all other
  6228.         hotlinks requesters and operations are covered in the documentation
  6229.         which accompanies the HotLinks Editions package from SoftLogik. Once
  6230.         you have selected a hotlinks image object, it will be loaded into
  6231.         your chosen buffer.
  6232.     
  6233.         At this time, ImageMaster will not automatically re-read buffers that
  6234.         were loaded with the Subscribe module. This is not a bug, but an
  6235.         implementation decision. Generally, ImageMaster will be used to feed
  6236.         PageStream high quality processed image data; given the current state
  6237.         of Amiga software, there are few programs that are likely to be
  6238.         providing Imagemaster with updated images on a regular basis. This
  6239.         situation may change in the future.
  6240.  
  6241.  
  6242.  
  6243.  
  6244.  
  6245.  
  6246.                                    -103-                                   
  6247.         JPEG/JFIF
  6248.         =========
  6249.         Loads JPEG files which are in JFIF format. JPEG is a file format
  6250.         which is ``lossy'', which means that when the image is changed
  6251.         into JPEG format, some of the image information is lost. For this
  6252.         reason, JPEG images may not be of as high a quality as you usually
  6253.         expect from a 24-bit file format. Note that the compression used
  6254.         by the JPEG process is extremely effective; so much so that images
  6255.         may be only 1/50th of their uncompressed size. Because of this,
  6256.         you may find that a JPEG file which appears to be quite small
  6257.         uncompresses to a very large image, which you may not be able to
  6258.         load into Imagemaster without having additional RAM memory
  6259.         available. JPEG images contain a full 24-bits of color
  6260.         information. For more information on the JPEG format, see the JPEG
  6261.         save module documentation.
  6262.         
  6263.         IFF Palette
  6264.         ===========
  6265.         Loads IFF Palettes from IFF images created by most Amiga software.
  6266.         These palettes are loaded into Imagemaster's internal paint system
  6267.         palette for later use. The currently loaded image is not affected
  6268.         by the loading of this palette. IFF Palettes usually contain 12
  6269.         bits of color information. On occasion, they will contain 24-bits
  6270.         of color information.
  6271.         
  6272.         PMBC
  6273.         ====
  6274.         PMBC image files are loaded by this module. PMBC files are true
  6275.         color, 24-bit images in a completely lossless format, along with
  6276.         an alpha channel and image shape mask. For more information on
  6277.         PMBC, see the PMBC save module documentation.
  6278.         
  6279.         RAW
  6280.         ===
  6281.         RAW image files are files of literally raw image data. There are
  6282.         no extra bits of information describing anything about the image,
  6283.         such as it's size or resolution. For color raw images, there need
  6284.         to be three separate (but related) image files. One will contain
  6285.         the red information, one the green information and one the blue
  6286.         information. The RAW reader will present you with a file requester
  6287.         for each of these files so that you can specify each one. In
  6288.         addition, you need to tell the RAW reader what size the image is,
  6289.         since that information is not in the image file itself. RAW files
  6290.         contain a full 24-bits of color image data. For more information
  6291.         on RAW files, refer to the documentation for the RAW save module.
  6292.         
  6293.         Rendition
  6294.         =========
  6295.         Rendition format files are likely to have been produced by
  6296.         software from Octree corporation, makers of the Caligari line of
  6297.         image rendering systems. Rendition files contain 24-bits of color
  6298.         information, and possibly alpha (transparency) information.
  6299.         
  6300.         Rendition Alpha Channel Data
  6301.         ============================
  6302.         This reader creates a buffer which you may then use as transparency
  6303.         information from the alpha data in a rendition file.
  6304.  
  6305.                                    -104-                                   
  6306.         Board Master
  6307.         ============
  6308.         This reader can load any Board Master file as a B&W graphic image
  6309.         of the PCB traces and structures.
  6310.         
  6311.         PCX reader
  6312.         =========
  6313.         This reader will load 2-256 color PCX files.
  6314.         
  6315.         Animation Frames
  6316.         ================
  6317.         Animations, in this context, are IFF ANIM OP-5 animations such as
  6318.         those produced by Electronic Arts DPaint program, or Imagemaster
  6319.         itself. This reader asks you which frame it is you wish to load
  6320.         from within the animation. ANIM files may contain normal Amiga
  6321.         images, HAM-E images, or DCTV images.
  6322.         
  6323.         Targa
  6324.         =====
  6325.         Targa images (usually) come from IBM computers. There are a number
  6326.         of different Targa formats; some are 24-bits, some 16-bits and so
  6327.         on. So what you get when you load the image will depend upon the
  6328.         particular file format ebing used. These images were invented by
  6329.         Truevision, Inc.
  6330.         
  6331.         SHAM (and AHAM)
  6332.         ===============
  6333.         SHAM, or ``Sliced HAM'', is a format especially designed for the
  6334.         Amiga. These HAM-mode files contain palette information for every
  6335.         scan line, or some groups of scan lines. When these images are
  6336.         loaded, Imagemaster obtains the correct palette information and
  6337.         applies it to the 24-bit image it creates in the new buffer. These
  6338.         images were invented by NewTek Inc. AHAM is a compatible clone
  6339.         from ASDG.
  6340.         
  6341.         DHRZ (and ARZ0/ARZ1)
  6342.         ====================
  6343.         DHRZ, or ``Dynamic Hi-Res'', is a format especially designed for
  6344.         the Amiga. These hires mode files contain palette information for
  6345.         every scan line, or some groups of scan lines. When these images
  6346.         are loaded, Imagemaster obtains the correct palette information
  6347.         and applies it to the 24-bit image it creates in the new buffer.
  6348.         These images were invented by NewTek Inc. ARZ0 and ARZ1 are
  6349.         compatible clones from ASDG.
  6350.         
  6351.         DKB Trace
  6352.         =========
  6353.         These images are created by the PD Ray-Trace program of the same
  6354.         name. They are 24-bit full color images. DKB Trace was written by
  6355.         David K. Buck.
  6356.         
  6357.         RGB8/RGBN
  6358.         =========
  6359.         These formats contain 24-bit and 12-bit color images,
  6360.         respectively. They are created by programs such as Turbo Silver
  6361.         and Imagine, from Impulse Inc.
  6362.  
  6363.  
  6364.                                    -105-                                   
  6365.         FITS
  6366.         ====
  6367.         These images are created by software from NASA (National
  6368.         Aeronautic and Space Administration) and JPL (Jet Propulsion
  6369.         Laboratories). These images (usually) contain images obtained by
  6370.         space probes, or similar data. There are many FITS formats; we
  6371.         have attempted to support the most common ones. The FITS
  6372.         specification is incomplete and contradictory, so some images may
  6373.         not load with this PI Module. If this happens to you, please send
  6374.         one or more of these image to us on a floppy disk and we will
  6375.         attempt to update the reader to handle them.
  6376.         
  6377.         UPB8
  6378.         ====
  6379.         These files are saved from our own 256 color paint system for the
  6380.         HAM-E. UPB8 files contain images with up to 256 24-bit colors.
  6381.         
  6382.     Save Modules (F2)
  6383.     -----------------
  6384.     Save Modules are used to take an image which is already available
  6385.     (loaded) inside Imagemaster, encode them (compress and/or encrypt) and
  6386.     then save them to a file in a specific format suitable for loading by
  6387.     another program, possibly on another type of computer. Save Modules
  6388.     present you with a file requester, which you use to specify a location
  6389.     for the newly created file to be placed.
  6390.  
  6391.         HotLinks Publish
  6392.         ================
  6393.         The Publish module allows Imagemaster to create new hotlinks image
  6394.         files.  You will be given a choice of several image types to create.
  6395.         The choices are as follows:
  6396.  
  6397.           RGB   -   Saves the Image as triplets of RGB data.
  6398.           CMYK  -   Saves the image as quadruplets of CMYK data
  6399.           GREY  -   Saves the image as grey scale data
  6400.           BW    -   Saves the image as pure black or pure white pixels
  6401.       
  6402.         With the exception of the BW format, all other formats ask for the
  6403.         number of bits per color channel. The slider bar allows you to choose
  6404.         from one to eight. This option allows you to cut down the image size
  6405.         at the expense of color resolution. If you do not plan on doing color
  6406.         output, we recommend that you use the GREY format at eight bits. This
  6407.         will give you fairly small image sizes. For color work, use RGB or
  6408.         CMYK at eight bits unless you really need to save space. In that
  6409.         case, cut the number of bits down as needed.
  6410.     
  6411.         If you choose the BW option, you will be asked for a number between 1
  6412.         and 99 which will become the percentage threshold for assigning black
  6413.         or white to each pixel. The luma value of each pixel is computed
  6414.         using the standard NTSC RGB weighting, and is compared against this
  6415.         value. Pixels below the threshold are written as black, while those
  6416.         above the threshold are written as white.
  6417.  
  6418.         After choosing an image type and color resolution (or BW threshold),
  6419.         you will be presented with the hotlinks Publish requester. Fill in
  6420.         the requester and select OK. The buffer will be Published under the
  6421.         new name and will be available to other hotlinks clients.
  6422.  
  6423.                                    -106-                                   
  6424.         HotLinks Update
  6425.         ===============
  6426.         The Update module is almost identical to the Publish module. It
  6427.         differs only in the requester that is offered by hotlinks. You will
  6428.         be given a list of available hotlinks image objects and you must
  6429.         choose one of them to update. Note that you may update any hotlinks
  6430.         image with any image you wish.  You do not need to subscribe to the
  6431.         image before you can update it, nor does the new image need to be the
  6432.         same size or type as the old image.
  6433.  
  6434.         You may get a hotlinks error if another hotlinks program has the
  6435.         hotlinks image locked. You should be able to fix this by closing the
  6436.         file in the other application. For example, if you have a hotlinks
  6437.         image open in Soft Logik's BME, you cannot update it from within
  6438.         Imagemaster until you close it in BME.
  6439.  
  6440.         JPEG/JFIF
  6441.         =========
  6442.         JPEG (Joint Photographic Experts Group) format images are highly
  6443.         compressed, 24-bit color accurate images. No mask or alpha channel
  6444.         information is saved; the image compression method used is
  6445.         ``lossy''. This save module provides you with the ability to set
  6446.         the compression used from light to heavy. More compression results
  6447.         in more loss of image detail.
  6448.         
  6449.         JPEG is great for some things... and absolutely the worst thing to
  6450.         use for others. Consider: JPEG loses some quality when it
  6451.         compresses an image. Not a lot, if you use minimum compression,
  6452.         but still, some loss of quality occurs. If you're a scientist or a
  6453.         doctor, don't think "loses quality", instead think "loses and
  6454.         changes data"!
  6455.  
  6456.         Consider what happens if you're working on this image over a
  6457.         number of sessions. Each time you save and load the image in JPEG
  6458.         format, it deteriorates a little more (or a lot, if you compress
  6459.         it a great deal). The lesson, and the rule that comes from it, is
  6460.         obvious:
  6461.  
  6462.             Don't EVER use JPEG as a storage format for an image you're
  6463.             working on, or for an image that will be used in another image
  6464.             (unless you positively KNOW that the loss of quality won't
  6465.             matter, for whatever reason).
  6466.  
  6467.         JPEG is really good for archival storage of images you like, but
  6468.         aren't "serious" about. On minimum compression, a single use of
  6469.         the JPEG technique on an image will not seriously degrade it. And
  6470.         that's what you'd normally do with an archived image. Store it
  6471.         once, then load it as you please to view it, as many times as you
  6472.         like.
  6473.  
  6474.  
  6475.  
  6476.  
  6477.  
  6478.  
  6479.  
  6480.  
  6481.  
  6482.                                    -107-                                   
  6483.         PMBC
  6484.         ====
  6485.         PMBC stands for Plane Minimizing Bitmap Compression. It is a
  6486.         format invented at Black Belt Systems for lossless compression of
  6487.         high-color images. Using PMBC results in an image file which
  6488.         generally will be considerably smaller than the same file in 24-
  6489.         bit IFF format, the normal Amiga standard. PMBC is especially good
  6490.         at compressing images with gradients and areas of monochrome color
  6491.         in them. PMBC is not good at compressing images which contain
  6492.         large amounts of dither, such as an image which has been rendered
  6493.         to 256 colors for VGA use. You can expect an average improvement
  6494.         in storage requirements of about 16% over IFF-24; many images will
  6495.         exceed this average by a large amount, particularly those with
  6496.         monochromatic (by which we mean B&W, cyan, magenta, yellow, red,
  6497.         green or blue) information.
  6498.         
  6499.         Rendition
  6500.         =========
  6501.         These images are 24-bit color files. Used with Octree Software
  6502.         products on the Amiga.
  6503.         
  6504.         Vista Binary
  6505.         ============
  6506.         These images are actually altitude maps in a special binary format
  6507.         that Virtual Reality's VistaPro can read. Once saved in this
  6508.         format, VistaPro can load the file, and then generate a landscape
  6509.         from the data Imagemaster placed in the file.
  6510.         
  6511.         RAW
  6512.         ===
  6513.         RAW images contain no control information. Images are saved left
  6514.         to right, top to bottom, one byte per pixel in three files: red,
  6515.         green and blue. A five-by-five black image that had a dark red
  6516.         spot near the upper left would be saved as follows:
  6517.         
  6518.             red file           green file         blue file
  6519.             ----------------------------------------------------
  6520.             00 00 00 00 00     00 00 00 00 00     00 00 00 00 00
  6521.             00 33 00 00 00     00 00 00 00 00     00 00 00 00 00
  6522.             00 00 00 00 00     00 00 00 00 00     00 00 00 00 00
  6523.             00 00 00 00 00     00 00 00 00 00     00 00 00 00 00
  6524.             00 00 00 00 00     00 00 00 00 00     00 00 00 00 00
  6525.        
  6526.        For each of the preceeding three files, the bytes are saved in the
  6527.        following order:
  6528.        
  6529.                                  All Files
  6530.                                --------------
  6531.                                01 02 03 04 05
  6532.                                06 07 08 09 10
  6533.                                11 12 13 14 15
  6534.                                16 17 18 19 20
  6535.                                21 22 23 24 25
  6536.  
  6537.  
  6538.  
  6539.  
  6540.  
  6541.                                    -108-                                   
  6542.        RGB8
  6543.        ====
  6544.        This file format is an Impulse file format. Images saved in this
  6545.        format can be loaded into Imagine as various brushes and maps.
  6546.        RGB8 is a 24-bit byte-level non-lossy compressed format, which is
  6547.        generally not as efficient as IFF24 or PMBC; for this reason, you
  6548.        normally would only use this for compatibility with Impulse
  6549.        products.
  6550.        
  6551.        Targa
  6552.        =====
  6553.        This file format is used with Truevision's Targa boards and related
  6554.        software on the IBM PC.
  6555.     
  6556.     Process Modules (F3)
  6557.     --------------------
  6558.     Process Modules are used to perform operations upon an image which is
  6559.     already loaded into Imagemaster. These operations could be something
  6560.     as simple as applying contrast, or very complex, somthing like the
  6561.     morph function in Imagemaster. Each process will present you with a
  6562.     series of control panels appropriate for it's particular needs.
  6563.  
  6564.         HotLinks Info
  6565.         =============
  6566.         The Info module simply presents you with the hotlinks file requester
  6567.         and then allows you to examine and modify the information associated
  6568.         with a hotlinks file.
  6569.  
  6570.         HIST
  6571.         ====
  6572.         This module will create a text-file containing detailed numeric
  6573.         reports on all 256 levels each of red, green, blue, average
  6574.         (R + G + B) / 3, and Luma ((R x .30) + (G x .59) + (B x .11)).
  6575.         The file will detail each of these five reports, mark the
  6576.         name of the image and the total number of pixels involved
  6577.         in the analysis. Each level will have a number of pixels
  6578.         data item. Lines in the text file which begin with the
  6579.         asterisk (*) character are not data lines. Other lines have
  6580.         the format:
  6581.         
  6582.             cNNN:v
  6583.         
  6584.         Where "c" is R, G, B, L or A for Red, Green, Blue, Luma and
  6585.         Average; where "NNN" is a three digit number from "000" to
  6586.         "255", leading zeros always present. The colon character ":"
  6587.         is always present in a data line. "v" is a number without leading
  6588.         zeros that may range from "0" to the number of pixels in the
  6589.         region being analyzed.
  6590.         
  6591.         This module is specifically intended for those analyzing image
  6592.         data.
  6593.     
  6594.         KOCH
  6595.         ====
  6596.         This PI Module generates a Koch fractal snowflake into the image
  6597.         which is the primary image.
  6598.  
  6599.  
  6600.                                    -109-                                   
  6601.         Transition Generator (Wipe)
  6602.         ===========================
  6603.         This capability is designed to be used in the multi-sequence
  6604.         processor. The idea is that often, you'll want to create a transition
  6605.         of some kind between two images.
  6606.         
  6607.         The simplest type of transistion is a "cut", where the images being
  6608.         displayed suddenly and completely change from one to another. Cuts
  6609.         are easy - you just do them.
  6610.  
  6611.         Another kind of transition, which you can often do with a moderately
  6612.         sophisticated VCR, is a "fade". Fades are transitions where one image
  6613.         fades out as another fades in. This is much more sophisticated (to
  6614.         perform) than a cut, because it involves processing the two images
  6615.         against each other.
  6616.         
  6617.         Another type of transitions include geometric, or pattern transitions.
  6618.         These allow a second image to "show through" a pattern of some type;
  6619.         the pattern changes shape in such a way during the operation of the
  6620.         transition so that one image dissapears and another appears. An
  6621.         ellipse that grows larger than the display is an example of this type
  6622.         of transition.
  6623.         
  6624.         Finally, we have the class of transitions call "Wipes". A wipe is a
  6625.         transition where one image actually moves onto the display, for
  6626.         instance, from the left edge, covering the image that was there
  6627.         previously.
  6628.         
  6629.         Imagemaster can produce many types of all of these transitions, and
  6630.         often will do so with finer detail than a particular hardware
  6631.         transition generator in common use in the Amiga community.
  6632.         
  6633.         It is really quite easy to use the transition generator: First, you
  6634.         need two images. Load one as primary, and then load one, or assign
  6635.         one, as the secondary. Next, in the sequence control panel, select
  6636.         Set Scripts and place the following line in the Pre-Render script:
  6637.         
  6638.                 rxpi:wipe.rexx
  6639.         
  6640.         Once you have done this, you can use the "Primary" option in the Run
  6641.         Scripts panel of the sequencer to generate transitions.
  6642.         
  6643.         When you press the Primary button, the transition generator will be
  6644.         invoked; it "knows" you have not (yet) selected the particular
  6645.         transition you want to use, so it will pause and ask you which one
  6646.         you want; select from the list presented to you and off it goes.
  6647.  
  6648.                             <continued next page>
  6649.  
  6650.  
  6651.  
  6652.  
  6653.  
  6654.  
  6655.  
  6656.  
  6657.  
  6658.  
  6659.                                    -110-                                   
  6660.                       <Transition Generator, continued>
  6661.  
  6662.         If you'd like to test the transitions, then turn on the filmstrip and
  6663.         make sure that TEST is selected in the Run Scripts panel of the
  6664.         Sequencer... that way, the generated transitions are placed in the
  6665.         filmstrip only, not rendered or saved as 24-bits.
  6666.         
  6667.         Here is a list of some of the currently available transitions:
  6668.  
  6669.             BLToTR ---- Bottom Left (to) Top Right
  6670.             BRToTL ---- Bottom Right (to) Top Left
  6671.             TLToBR ---- Top Left (to) Bottom Right
  6672.             TRToBL ---- Top Right (to) Bottom Left
  6673.             LToR ------ Left (to) Right
  6674.             RToL ------ Right (to) Left
  6675.             BToT ------ Bottom (to) Top
  6676.             TToB ------ Top (to) Bottom
  6677.             Ellipse --- Elliptical Pattern(s)
  6678.             Rect ------ Rectangular Pattern(s)
  6679.             VBlind ---- Vertical Blind pattern(s)
  6680.             HBlind ---- Horizontal Blind pattern(s)
  6681.             Fade ------ Fade from (to)
  6682.  
  6683.         The pattern fills (Ellipse and Rectangle) can be "tiled", where there
  6684.         can be any number of the chosen pattern across, and any number of
  6685.         them down, the image during the course of the transition.
  6686.         
  6687.         In addition, you'll have the opportunity to select with or without
  6688.         fading for any pattern fill; in fact, there are a number of options
  6689.         you can select such as "inverse time", "inverse pattern", and fading
  6690.         as mentioned.
  6691.         
  6692.         As with many of Imagemaster's poweful tools, playing with this will
  6693.         reveal the flexibility available; talking about it won't, at least
  6694.         not very well. So play!
  6695.         
  6696.         Note that we will be supplying more types of transitions with future
  6697.         upgrades; the transition generator is "open-ended"; unlike hardware
  6698.         solutions, new transitions can be added just a few at a time, or even
  6699.         one at a time!
  6700.         
  6701.         If you are a technically inclined type, new transitions can be added
  6702.         by creating new .rxwp files; you can do this also. If you're curious,
  6703.         call tech support and enquire into writing your own.
  6704.  
  6705.  
  6706.  
  6707.  
  6708.  
  6709.  
  6710.  
  6711.  
  6712.  
  6713.  
  6714.  
  6715.  
  6716.  
  6717.  
  6718.                                    -111-                                   
  6719.         Platform
  6720.         ========
  6721.         This PI Module allows you to create raised or depressed "bevel-
  6722.         boxes" on your images.
  6723.         
  6724.         This operation works with rectangular regions, or the entire image
  6725.         (which is of course rectangular).
  6726.         
  6727.         The bevel-edge width is set to 10% of the narrowest portion of the
  6728.         selected rectangle; this affords a good compromise for highly non-
  6729.         regular rectangles, and also looks good for squares.
  6730.         
  6731.         Graphs
  6732.         ======
  6733.         Executing the graph PI Module will bring up a file requester. You
  6734.         should select a graph file such as EXAMPLE.GRAPH . The graph will
  6735.         then be drawn in a new buffer. There is also an example graph file
  6736.         called EXAMPLE.table which you can use to see how to prepare graphs.
  6737.  
  6738.         Tesselate
  6739.         =========
  6740.         The PI Module will provide you with a choice of triangle edge
  6741.         length.  This is the size of each smooth area on the final result.
  6742.         Then you are presented with the normal area selection panel to
  6743.         identify the area you want to tessellate on.
  6744.  
  6745.         Erode
  6746.         =====
  6747.         'Brightness Erode' thins brighter areas of the image and expands
  6748.         darker areas. This can result in a water color paint like effect,
  6749.         especially on dithered images.
  6750.         
  6751.         'Brightness Dilate' does the opposite to Erode. It has a dramatic
  6752.         effect on human portraits.  Small cell sizes of 2 to 4 are
  6753.         recommended.
  6754.         
  6755.         Pressing F1 will provide you with a choice between 'Erode' and
  6756.         'Dilate'. Then you adjust the cell size.  A larger cell size will
  6757.         yield more dramatic results.  Then you are presented with the
  6758.         normal area selection panel to identify the area you want to
  6759.         change.
  6760.  
  6761.  
  6762.  
  6763.  
  6764.  
  6765.  
  6766.  
  6767.  
  6768.  
  6769.  
  6770.  
  6771.  
  6772.  
  6773.  
  6774.  
  6775.  
  6776.  
  6777.                                    -112-                                   
  6778.     Capture Modules (F4)
  6779.     --------------------
  6780.     Capture Modules operate external equipment in such a way as to allow
  6781.     you to bring an image into Imagemaster from a real-life source, such
  6782.     as an electron microscope, video camera, flatbed or handheld scanner,
  6783.     etc. Each Capture Module will provide you with the appropriate
  6784.     controls to perform the operation it is intended for.
  6785.     
  6786.         ES-300c
  6787.         =======
  6788.         This module is commercial; it is available from Metadigm, Inc.
  6789.         You can contact Metadigm at (714) 253-2828. The ES-300c scanner
  6790.         module is available stand-alone or as an upgrade from the ASDG
  6791.         software for the ES-300c (the upgrade allows you to use the cable
  6792.         that came with the ASDG software). If you do own the ASDG scanner
  6793.         module, we strongly recommend the Metadigm upgrade; the
  6794.         module's performance is better and the module is much easier to
  6795.         use.
  6796.     
  6797.     Display Modules (F5)
  6798.     --------------------
  6799.     Display Modules are essentially the opposite of Capture Modules. They
  6800.     allow you to take an image currently loaded into Imagemaster and
  6801.     ``send'' it to a display device such as a 24-bit display card, or a
  6802.     photographic imager like the Polaroid Digital Palette. The most common
  6803.     use of a Display Module is to view an image on a high-color device.
  6804.     
  6805.         IV-24
  6806.         =====
  6807.         This PI Module supports GVP's 24-bit display card, the IV-24. It
  6808.         provides output to the IV-24 display only. It cannot be used for
  6809.         automatic update operations, as the IV-24 shares the screen with
  6810.         the Amiga's display.
  6811.         
  6812.         FC24
  6813.         ====
  6814.         This PI Module supports Impulses FireCracker 24 display card. If
  6815.         you place the script (rxpi:imfc24r.rexx) in the "Redraw Script"
  6816.         text entry field found in the Display panel, and activate the
  6817.         "Call Redraw Script" button in the display panel, then as soon as
  6818.         Imagemaster completes redrawing on the Amiga screen, it will also
  6819.         redraw on the FC24 screen. This allows continuous monitoring of
  6820.         the image on the second monitor.
  6821.         
  6822.         DMI Resolver
  6823.         ============
  6824.         This PI Module supports Digital Micronics ``Resolver'' 256-color
  6825.         24-bit display board. If you place the script (rxpi:resolver.rexx)
  6826.         in the "Redraw Script" text entry field found in the Display
  6827.         panel, and activate the "Call Redraw Script" button in the display
  6828.         panel, then as soon as Imagemaster completes redrawing on the
  6829.         Amiga screen, it will also redraw on the Resolver screen. This
  6830.         allows continuous monitoring of the image on the second monitor.
  6831.  
  6832.  
  6833.  
  6834.  
  6835.  
  6836.                                    -113-                                   
  6837.     Adding new aftermarket PI modules
  6838.     ---------------------------------
  6839.     To add any new PI Module (PIM), you'll follow these simple steps:
  6840.  
  6841.         1 - Copy the ARexx portion of the PIM into RXPI:
  6842.         2 - Copy the command portion(s) of the PIM into CMPI:
  6843.         3 - Edit the file CMPI:list.list to activate the PIM
  6844.             (Each PIM .doc file should show you the single line needed)
  6845.         4 - Print out the PIM documentation file for future reference
  6846.  
  6847.     The first two steps are basically self-explanatory. The third is easy
  6848.     to do, but you do need to understand what the file CMPI:list.list does
  6849.     for you.
  6850.  
  6851.     Essentially, the file CMPI:list.list is a list (no surprise, eh?) of
  6852.     the available PIMs you have installed. The list also contains
  6853.     "keywords" that indicate what "class" of PIM it is. We have currently
  6854.     defined the following classes of PIMs:
  6855.  
  6856.         1 - Reader;  these load various file formats
  6857.         2 - Writer;  these save various file formats
  6858.         3 - Effect;  these perform effects upon an already loaded image
  6859.         4 - Capture; these retrieve images from peripheral hardware devices
  6860.         5 - Display; these provide images to peripheral hardware devices
  6861.  
  6862.     At times, a PIM may fall into more than one catagory, particularly in
  6863.     the case of file handling PIMs. For instance, the JFIF/JPEG PIM can
  6864.     load and save JPEG files, so it is both a reader and a writer. We have
  6865.     configured the system so that the module will show in both lists in a
  6866.     clear fashion.
  6867.  
  6868.     When you add a PIM to the CMPI:list.list file, you add one line of
  6869.     text which names the ARexx script, describes the capabilties the PIM
  6870.     provides, and has the keywords which let the image processor know what
  6871.     class(es) the PIM falls into. Here's a possible list entry for the IFF
  6872.     Palette reader PIM as an example:
  6873.  
  6874.         "palrd",     "IFF Palette reader",            load
  6875.  
  6876.     The first portion of the line ("palrd") is the name of the ARexx
  6877.     script without the ".rexx" extension and without any path. The
  6878.     extension ".rexx" is added to the end of this field automatically and
  6879.     the string "rxpi:" is used as the path.
  6880.  
  6881.     The second portion of the line ("IFF Palette reader") is the
  6882.     description of the PIM's capabilities. This portion of the line
  6883.     actually appears in the list requester inside the image processor.
  6884.  
  6885.     The third portion of the line (load) consists of a keyword which
  6886.     defines the class which the IFF Palette reader PIM falls into; load is
  6887.     the keyword for a Reader.
  6888.  
  6889.     You can add comments to the list file on any line by simply beginning
  6890.     the line with an "*" (asterisk) character.
  6891.  
  6892.  
  6893.  
  6894.  
  6895.                                    -114-                                   
  6896.     You will also see lines in the CMPI:list.list file which begin with an
  6897.     "!"  (exclamation point) character. These lines are text lines which
  6898.     are placed next to the list requester when it appears; generally, you
  6899.     won't want to change these lines, although you certainly can. Here are
  6900.     the three types of lines together:
  6901.  
  6902.         * comment line; has no effect and may contain anything
  6903.         ! appears on-screen, next to the list requester itself
  6904.         * the next lines add entries to the list requester
  6905.         "jpeg load", "JPEG/JFIF file load",           load
  6906.         "jpeg save", "JPEG/JFIF file save",           save
  6907.         RGBxr,     "Impulse RGB8/RGBN file load",     load
  6908.         eroder,    "Erode (F/X)",                     effect
  6909.         imiv24r,   "GVP IV-24 Display",               display
  6910.  
  6911.     Examining the CMPI:list.list file will be instructive if you're
  6912.     interested in custom modifications.
  6913.  
  6914.          Note
  6915.          ----
  6916.          When you install a new PI system, the "list.list" file will
  6917.          be replaced with a new version. Your old list.list file will be
  6918.          renamed to list.list.old; you'll still find it in the CMPI:
  6919.          assigned location. In order to reinstall your aftermarket PI
  6920.          modules, you'll have to use a text editor to copy the lines from
  6921.          the .old file to the current list.list file. Until this is done,
  6922.          your aftermarket PI modules will not show in the PI requesters.
  6923.  
  6924.  
  6925.     Removing PI Modules from the list:
  6926.     ----------------------------------
  6927.     Edit the file "CMPI:list.list" and simply remove the single line that
  6928.     describes the PI Module you want to delete. This line will not begin
  6929.     with either a "!"  or a "*" character. If you do not wish to remove
  6930.     the line, but only want to temporarily disable it, place an asterisk
  6931.     (*) before all other characters on that line, and the line will be
  6932.     treated as if it were a comment (that is, it will be ignored).
  6933.  
  6934.  
  6935.  
  6936.  
  6937.  
  6938.  
  6939.  
  6940.  
  6941.  
  6942.  
  6943.  
  6944.  
  6945.  
  6946.  
  6947.  
  6948.  
  6949.  
  6950.  
  6951.  
  6952.  
  6953.  
  6954.                                    -115-                                   
  6955.     ARexx Port Names
  6956.     ================
  6957.     Here's something we inadvertantly left out of the manual... the port
  6958.     name for the ARexx ports in Imagemaster, Imagemaster F/c, or Image
  6959.     Professional. Here it is:
  6960.     
  6961.                                   IM_Port             
  6962.     
  6963.                                  ----------
  6964.     
  6965.     Render command changed
  6966.     ======================
  6967.     On page 177 of the manual, the parameters given are not complete.
  6968.     Parameter number six <name>, described on page 178 (correctly), is
  6969.     missing.  Make sure you take this into account if you are using the
  6970.     render command. Here is the correct command string:
  6971.     
  6972.     render <lace> <width> <height> <mode> <usep> <name> [cols]
  6973.     
  6974.                                  ----------
  6975.     
  6976.     Filerequest command changed
  6977.     ===========================
  6978.     This command now returns the string 'FR_CANCELLED' if the user cancels
  6979.     the file requester. This allows you to abort operations in progress.
  6980.     
  6981.                                  ----------
  6982.     
  6983.     Newbuf command (changed)
  6984.     ========================
  6985.     The newbuf command now has the following syntax:
  6986.     
  6987.         newbuf <width> <height> [name] [MASK]
  6988.     
  6989.     The new keyword MASK allows you to specify a new buffer with a local
  6990.     mask plane available. This is required if you are writing a PI Load
  6991.     module that will need a local mask (for a non-rectangular image).
  6992.     
  6993.     Note that there are two optional parameters here; you'll need to
  6994.     provide a NULL string for the "name" parameter if you want the
  6995.     automatic naming to work, as in the following example:
  6996.     
  6997.             'newbuf "'||width||'","'||height||'","","MASK"';
  6998.     
  6999.                                  ----------
  7000.     
  7001.     Firecracker-specific manipulation (new commands)
  7002.     ================================================
  7003.     The ARexx commands FCHIDE and FCSHOW have been added; these turn the
  7004.     FC24 display on and off. They have no effect (and cause no error) in
  7005.     the other versions of the image processor.
  7006.     
  7007.                                  ----------
  7008.  
  7009.  
  7010.  
  7011.  
  7012.  
  7013.                                    -116-                                   
  7014.     Finding the mouse location from ARexx (new command)
  7015.     ===================================================
  7016.     The ARexx command "WHEREMOUSE" returns the mouse's current co-
  7017.     ordinates using the image resolution.
  7018.     
  7019.                                  ----------
  7020.     
  7021.     coords <show> <top> (new command)
  7022.     =================================
  7023.     This allows you to turn the co-ordinate facility on and off from
  7024.     ARexx, and also to control the placement of them.
  7025.     
  7026.     If show is 1, then co-ordinates are on. If 0, then they are off.  If
  7027.     top is 0, then the co-ordinates are displayed at the top of the
  7028.     screen. If 1, then at the bottom.
  7029.     
  7030.                                  ----------
  7031.     
  7032.     grid <on> <xgrid> <ygrid> <xoff> <yoff> (new command)
  7033.     =====================================================
  7034.     This command allows you to set a particular grid. When on is 0, the
  7035.     grid is off. When 1, grid is on. xgrid and ygrid allow you to set the
  7036.     spacing between grid lines; xoff and yoff allow you to set any offset
  7037.     from the top left corner (0,0) of the image.
  7038.     
  7039.                                  ----------
  7040.     
  7041.     newasprimary (new command)
  7042.     ==========================
  7043.     This is similar to the newbuf ARexx command, except that the buffer it
  7044.     creates is always the primary buffer. The newbuf command would create
  7045.     the new buffer as the primary buffer only if there was no previously
  7046.     existing primary buffer; otherwise, the new buffer was just added as
  7047.     ``another'' buffer in the system. When you use OPTIONS RESULTS in the
  7048.     ARexx script so that the image processor knows it can return data to
  7049.     you, the number of the buffer created will be returned.
  7050.     
  7051.     This new command ensures that the newly created buffer will be the
  7052.     primary buffer, regardless of previously existing buffers in the
  7053.     system.
  7054.     
  7055.                                  ----------
  7056.     
  7057.     newbuf (changed)
  7058.     ================
  7059.     The ARexx newbuf command now returns the number of the buffer it
  7060.     creates if you use OPTIONS RESULTS in the ARexx script.
  7061.     
  7062.                                  ----------
  7063.     
  7064.     fromdigiview (changed)
  7065.     ======================
  7066.     The ARexx fromdigiview command now returns the number of the buffer it
  7067.     creates if you use OPTIONS RESULTS in the ARexx script.
  7068.     
  7069.                                  ----------
  7070.  
  7071.  
  7072.                                    -117-                                   
  7073.     dome (changed)
  7074.     ==============
  7075.     The ARexx dome command now has an optional extra parameter,
  7076.     "effect". You call it this way:
  7077.  
  7078.         'dome 60 50'; /* dome <radius> [effect] */
  7079.     or...
  7080.         'dome 60';
  7081.  
  7082.     If you don't use the extra parameter, it defaults to 100%
  7083.  
  7084.                                   ----------
  7085.     caric (changed)
  7086.     ===============
  7087.     The ARexx caric command now has an optional extra parameter,
  7088.     "effect". You call it this way:
  7089.  
  7090.         'caric 60 50'; /* caric <radius> [effect] */
  7091.     or...
  7092.         'caric 60';
  7093.  
  7094.     If you don't use the extra parameter, it defaults to 100%
  7095.  
  7096.                                  ----------
  7097.  
  7098.     askrgb (added)
  7099.     ==============
  7100.     This command allows you to get a set of RGB values from the user in the
  7101.     course of executing a script or macro. Use it like this:
  7102.     
  7103.         options results;
  7104.         'askrgb';
  7105.         colors = result;
  7106.         parse var colors red','grn','blu;
  7107.         options;
  7108.  
  7109.     After running this, the variables RED, GRN and BLU contain the rgb
  7110.     values, from 0 to 255, that the user selected.
  7111.  
  7112.  
  7113.  
  7114.  
  7115.  
  7116.  
  7117.  
  7118.  
  7119.  
  7120.  
  7121.  
  7122.  
  7123.  
  7124.  
  7125.  
  7126.  
  7127.  
  7128.  
  7129.  
  7130.  
  7131.                                    -118-                                   
  7132.     imagemaspect (new command)
  7133.     ==========================
  7134.     This command returns the aspect ratio of the chosen buffer.
  7135.     
  7136.     'imagemaspect '||BUFFERNUM'; /* get aspect ratio */
  7137.     
  7138.     loadimask (new command)
  7139.     =======================
  7140.     saveimask (new command)
  7141.     =======================
  7142.     This command loads the image mask (the valid image area mask) from a
  7143.     saved mask file.
  7144.     
  7145.     'loadimask <complete_filename> [mode]'
  7146.            where...
  7147.                       mode   1 = Replace existing mask (default) 
  7148.                              2 = OR
  7149.                              3 = AND
  7150.                              4 = XOR
  7151.                              5 = MINUS
  7152.    
  7153.     The opposite command is:
  7154.         'saveimask <complete_filename>';
  7155.     
  7156.     loadmask (new command)
  7157.     ======================
  7158.     savemask (new command)
  7159.     =======================
  7160.     This command loads the main mask (the region selection mask) from a
  7161.     saved mask file.
  7162.     
  7163.     'loadmask <complete_filename> [mode]'
  7164.            where...
  7165.                       mode   1 = Replace existing mask (default) 
  7166.                              2 = OR
  7167.                              3 = AND
  7168.                              4 = XOR
  7169.                              5 = MINUS
  7170.    
  7171.     The opposite command is:
  7172.         'savemask <complete_filename>';
  7173.  
  7174.  
  7175.  
  7176.  
  7177.  
  7178.  
  7179.  
  7180.  
  7181.  
  7182.  
  7183.  
  7184.  
  7185.  
  7186.  
  7187.  
  7188.  
  7189.  
  7190.                                    -119-                                   
  7191.     backuptoundo (new command)
  7192.     ==========================
  7193.     This command has specifically included to enhance the public interface
  7194.     capabilities. If you are writing an external process, and are
  7195.     operating upon the contents of the Primary buffer, using this command
  7196.     before you perform your process will copy the initial contents of the
  7197.     Primary buffer into the UnDo buffer, allowing the user to UnDo the
  7198.     changes caused by your process.
  7199.     
  7200.                                  ----------
  7201.     
  7202.     coords <show> [showattop] (new command)
  7203.     =======================================
  7204.     Here, <show> is required, 0 means no, 1 means yes.
  7205.     
  7206.                                  ----------
  7207.     
  7208.     grid <on> [xgrid] [ygrid] [xoffs] [yoffs] (new command)
  7209.     =======================================================
  7210.     Here, <on> is required and should be 1 for on, 0 for off. If <on>=1,
  7211.     then the other four parameters must be present.  [xgrid] and
  7212.     [ygrid] define the spacing of the grid. [xoffs] and [yoffs] define the
  7213.     offset from the top left edge of the image where the first vertice of
  7214.     the grid will occur. These last two parameters must be values less
  7215.     than the first two.
  7216.     
  7217.                                  ----------
  7218.     
  7219.     autoactivate (new command)
  7220.     ==========================
  7221.     The autoactivate ARexx command has been added so that you can change
  7222.     the state of the image processor's automatic re-activation of it's
  7223.     main control panel when it completes all pending operations.
  7224.     
  7225.     Since there may be times when you have another process running, and
  7226.     don't want the image processor to reactivate it's window during that
  7227.     time, this command was added.
  7228.     
  7229.     Use it as autoactivate 0 to turn autoactivation off, and use it as
  7230.     autoactivate 1 to turn it back on again.
  7231.     
  7232.     If you are passing control to another program, make sure that
  7233.     autoactivate 0 is in the ARexx script before the other program is
  7234.     called; and when control is returned to the image processor, make sure
  7235.     that autoactivate 1 is in the script before you bring up the the image
  7236.     processor screens. Bringing the the image processor's display to the
  7237.     front with autoactivate off may seriously confuse the user.
  7238.     
  7239.                                  ----------
  7240.  
  7241.  
  7242.  
  7243.  
  7244.  
  7245.  
  7246.  
  7247.  
  7248.  
  7249.                                    -120-                                   
  7250.     setpalette (new command)
  7251.     ========================
  7252.     This ARexx command has been added so that the color of any of the 256
  7253.     palette entries may be set from a script. The PI Module which is now
  7254.     supplied uses this command to set palette entries once it has read the
  7255.     IFF file and extracted the CMAP (color map) chunk from within the
  7256.     image file. Use is simple:
  7257.  
  7258.         'setpalette' entry R G B;
  7259.  
  7260.     Where the parameters are defined as:
  7261.  
  7262.       entry: [0-255] (which palette color of 256)
  7263.           R: [0-255] (intensity)
  7264.           G: [0-255] (intensity)
  7265.           B: [0-255] (intensity)
  7266.  
  7267.     Here is an ARexx fragment that sets the palette to a grey scale:
  7268.  
  7269.         do i=0 to 255
  7270.           'setpalette' i i i i;
  7271.           end;
  7272.  
  7273.     Here is an ARexx fragment that sets the palette to all black:
  7274.  
  7275.         do i=0 to 255
  7276.           'setpalette' i 0 0 0;
  7277.           end;
  7278.  
  7279.     Here is an ARexx fragment that sets the palette to a reverse grey scale:
  7280.  
  7281.         do i=0 to 255
  7282.           'setpalette' i 255-i 255-i 255-i;
  7283.           end;
  7284.  
  7285.                                 ----------
  7286.  
  7287.     newtargetted (new command)
  7288.     ==========================
  7289.    'newtargetted <xw> <yx> <name> [mask]' (ARexx)
  7290.    
  7291.    creates a new image buffer and prompts the user for its target
  7292.    ie. New as primary, Old as secondary, etc.  Returns the buffer number.
  7293.    Meant to be used in PI modules so user has a flexible choice with the
  7294.    loaders.
  7295.  
  7296.                                 ----------
  7297.  
  7298.  
  7299.  
  7300.  
  7301.  
  7302.  
  7303.  
  7304.  
  7305.  
  7306.  
  7307.  
  7308.                                    -121-                                   
  7309.     DISPLAYMODE (new command)
  7310.     =========================
  7311.     DISPLAYMODE <mode> <lace>  [quality] ------ for Image Professional
  7312.     DISPLAYMODE <mode> <lace> ----------------- for Imagemaster
  7313.     DISPLAYMODE <mode> <res> ------------------ for Imagemaster F/c
  7314.     
  7315.     This command allows you to change the current display mode within the
  7316.     image processing software. It has no effect upon the image itself, nor
  7317.     upon output render results. In the following table, "Q" is used to
  7318.     specify the [quality] switch.
  7319.     
  7320.                      for IP <mode> is 0 = luma
  7321.                                       1 = avg
  7322.                                       2 = reg Ord Dither
  7323.                                       3 = HAM-E 24 bit (also depends on Q flag)
  7324.                                       4 = HAM-E 18 bit (also depends on Q flag)
  7325.                                       5 = EDD 256 colors
  7326.                             <lace>    0 = non-lace
  7327.                                       1 = lace display
  7328.                          [quality]    0 = normal
  7329.                                       1 = high quality (HQ)
  7330.     
  7331.                      for IM <mode> is 0 = luma (in 16 shades)
  7332.                                       1 = avg
  7333.                                       2 = 16 color hi-res
  7334.                                       3 = 32 color lo-res
  7335.                                       4 = half-brite
  7336.                                       5 = HAM (fast)
  7337.                                       6 = HAM (quality)
  7338.     
  7339.                    for IMFc <mode> is 0 = luma (256 shades)
  7340.                                       1 = avg
  7341.                                       2 = color (24 bit)
  7342.       (the second parameter is then <resolution>)
  7343.                                       0 = low res
  7344.                                       1 = med-res
  7345.                                       2 = med-res 2
  7346.                                       3 = hi-res
  7347.                                       
  7348.                                 ----------
  7349.     
  7350.     pal (new command)
  7351.     =================
  7352.     This is used with options results in ARexx. Reports 0 for NTSC and
  7353.     1 for PAL modes. Used to determine how Imagemaster is running at
  7354.     the time of macro execution.
  7355.     
  7356.                                 ----------
  7357.  
  7358.  
  7359.  
  7360.  
  7361.  
  7362.  
  7363.  
  7364.  
  7365.  
  7366.  
  7367.                                    -122-                                   
  7368.     autoprimary <mode> (new command)
  7369.     ================================
  7370.     This command puts the image manipulation software into a mode where
  7371.     any newly allocated buffer is automatically made the primary buffer.
  7372.     This makes ARexx scripting, especially in Sequence or Morph scripting,
  7373.     much easier to deal with.
  7374.  
  7375.       mode = 0  new buffers do not become the primary unless there are none
  7376.       mode = 1     "        always become primary
  7377.       
  7378.                                 ----------
  7379.                                 
  7380.     newbrush <bufferNumber> (new command)
  7381.     =====================================
  7382.     Selects the chosen buffer as the current brush, as used in
  7383.     the paint tool panel.
  7384.       
  7385.                                 ----------
  7386.  
  7387.     newblend <bufferNumber> (new command)
  7388.     =====================================
  7389.     Selects the chosen buffer as the current blend, as used for
  7390.     alpha control purposes (under the Set Blend panel).
  7391.       
  7392.                                 ----------
  7393.  
  7394.  
  7395.  
  7396.  
  7397.  
  7398.  
  7399.  
  7400.  
  7401.  
  7402.  
  7403.  
  7404.  
  7405.  
  7406.  
  7407.  
  7408.  
  7409.  
  7410.  
  7411.  
  7412.  
  7413.  
  7414.  
  7415.  
  7416.  
  7417.  
  7418.  
  7419.  
  7420.  
  7421.  
  7422.  
  7423.  
  7424.  
  7425.  
  7426.                                    -123-                                   
  7427.     render (changed) [obsolete - see AmigaRender command]
  7428.     ================
  7429.     The following replaces the description of the RENDER Arexx command on
  7430.     pages 177 and 178 of the manual.
  7431.     
  7432.     Summary of changes: -
  7433.     
  7434.                 *  19 new render modes
  7435.                 
  7436.                 *  No more size restrictions, except when rendering for
  7437.                    DCTV (as required by the device).
  7438.                    
  7439.                 *  Number of colors defaults to the maximum for that
  7440.                    render mode.
  7441.     
  7442.     Detail for ARexx render command
  7443.     -------------------------------
  7444.     
  7445.     render <lace> <width> <height> <mode> <usepalette> <name> [numcolors]
  7446.     ---------------------------------------------------------------------
  7447.     
  7448.     <lace>    0 = no, 1 = yes.
  7449.               Ignored for GIF and the non-viewable IFF renders.
  7450.     
  7451.     <width>   render image width.
  7452.               Only restricted to between 640 and 736 for DCTV.
  7453.     
  7454.     <height>   render image height.
  7455.                Only restricted when rendering for the DCTV to between 
  7456.                200 and 241 for non-lace and between 400 to 481 for lace.
  7457.     
  7458.     <mode>
  7459.     
  7460.     1 = HAM-E mode, 18 bit
  7461.     2 = HAM-E mode, 24 bit (extended color space dithering)
  7462.     3 = Register mode for the HAM-E device, undithered
  7463.     4 = Register mode for the HAM-E device, dithered (EDD)
  7464.     5 = Register mode for the HAM-E device, Black and White average
  7465.     6 = Register mode for the HAM-E device, Black and White luma
  7466.     
  7467.     7 = 256 color GIF
  7468.     
  7469.     8 =  16 shade Amiga hi-res - Black and White Average
  7470.     9 =  16 shade Amiga hi-res - Black and White Luma
  7471.     10 = 16 color Amiga hi-res - color
  7472.     11 = 32 color Amiga lo-res
  7473.     12 = 64 color Amiga half-brite
  7474.     13 = Amiga HAM
  7475.     
  7476.     14 = DCTV 3-bitplane (width must be 640 to 736, and height 200 to 241,
  7477.                                                     or         400 to 482)
  7478.     15 = DCTV 4-bitplane (width must be 640 to 736, and height 200 to 241,
  7479.                                                     or         400 to 482)
  7480.                      
  7481.                      <continued next page>
  7482.  
  7483.  
  7484.  
  7485.                                    -124-                                   
  7486.     16 = Amiga Hi-Res with 1 bitplane  and 2 colors
  7487.     17 = Amiga Hi-Res with 2 bitplanes and 4 colors or less
  7488.     18 = Amiga Hi-Res with 3 bitplanes and 8 colors or less
  7489.     19 = Amiga Lo-Res with 1 bitplane  and  2 colors
  7490.     20 = Amiga Lo-Res with 2 bitplanes and  4 colors or less
  7491.     21 = Amiga Lo-Res with 3 bitplanes and  8 colors or less
  7492.     22 = Amiga Hi-Res with 4 bitplanes and 16 colors or less
  7493.     23 = Amiga IFF render (not displayed ) with 6-bitplanes and 64 colors
  7494.     24 = Amiga IFF render (not displayed ) with 7-bitplanes and 128 colors
  7495.     25 = Amiga IFF render (not displayed ) with 8-bitplanes and 256 colors
  7496.     
  7497.     <usepalette>   If 0 the image colors will be chosen; if 1 then the
  7498.                    currently loaded palette will be used.
  7499.                    
  7500.     <name>     The image name used to save the rendered image to.
  7501.                The full name will be a combination of the render path
  7502.                that was set with the   RENDERPATH command, this name,
  7503.                and the extension that was set with the 
  7504.                RENDEREXT command.
  7505.      
  7506.     
  7507.     [numcolors]    The number of colors used to render with. This 
  7508.                    defaults to the maximum number of colors
  7509.                    possible for each render method.
  7510.                    
  7511.                    This only indicates the number of registers for
  7512.                    Amiga HAM and HAM-E modes even though the actual
  7513.                    number of displayable colors is much higher.
  7514.                    
  7515.                    (Ignored for DCTV renders.)
  7516.                    
  7517.                                 ----------
  7518.  
  7519.     CANCEL command (new command)
  7520.     ============================
  7521.     This command is to be used in sequence processor scripts. Its effect is
  7522.     the same as when the user presses cancel with the mouse; it provides a
  7523.     method for a script to terminate the sequence operation because of some
  7524.     internally detected reason (failure, usually).
  7525.  
  7526.  
  7527.  
  7528.  
  7529.  
  7530.  
  7531.  
  7532.  
  7533.  
  7534.  
  7535.  
  7536.  
  7537.  
  7538.  
  7539.  
  7540.  
  7541.  
  7542.  
  7543.  
  7544.                                    -125-                                   
  7545.     AmigaRender command (new command)
  7546.     =================================
  7547.     New ARexx command for rendering Amiga modes (supports AGA)
  7548.  
  7549.     This uses a new method of parameter handling, which looks like this:
  7550.  
  7551.                   'amigarender [PARAM:value] ...'
  7552.  
  7553.     There are nine possible parameters, which may be in any order,
  7554.     and are all optional. If a parameter is ommitted, in each case, 
  7555.     the last setting is used, except COLORS which is set to the
  7556.     'normal' value for this mode and bit depth.
  7557.  
  7558.     Parameter names for 'AmigaRender' can be abbreviated right down to
  7559.     one character.  Parameter values can be abbreviated as long as they
  7560.     remain non-ambiguous.  ON,OFF or 1,0 values may replace YES,NO.
  7561.     Case is not important.
  7562.  
  7563.                                Parameters:
  7564.                                -----------
  7565.     
  7566.     RES:xxx         LO,HI,SUPER                 Display resolution 
  7567.     PLANES:n        1 through 8                 Image Bit depth
  7568.     DEPTH:n         12 or 24                    Palette depth
  7569.     MODE:xxx        REG,HALFBRITE (or HB),HAM   Display mode
  7570.     LACE:xxx        YES or NO                   Display interlace
  7571.     WIDTH:nnnn                                  Render output width
  7572.     HEIGHT:nnnn                         Render output height
  7573.     USEPALETTE:xxx  YES or NO           Use existing palette
  7574.     NAME:ttttttt                        Output name (without path, extension)
  7575.     COLORS:nn       2 to 256            Number of colors to render with
  7576.  
  7577.     For example:
  7578.      'renderpath ram:'
  7579.      'renderext  .iff'
  7580.      'entire'
  7581.      'amigarender RES:hi MOD:reg PLANES:4 D:12 NAME:myimage'
  7582.      'finish'
  7583.     
  7584.       ...would render in high-res 16 color to the file  "ram:myimage.iff"
  7585.       from the sequencer.
  7586.     
  7587.                                  ----------
  7588.     
  7589.  
  7590.  
  7591.  
  7592.  
  7593.  
  7594.  
  7595.  
  7596.  
  7597.  
  7598.  
  7599.  
  7600.  
  7601.  
  7602.  
  7603.                                    -126-                                   
  7604.     actpri (new command)
  7605.     ====================
  7606.     This ARexx command is meant to be used when the sequencer is in
  7607.     operation.  The Sequencer operates by making buffers primary that
  7608.     are either new (temporary) buffers taken from the list, or other
  7609.     buffers. In some cases, you may wish to know what buffer was the
  7610.     "actual" primary, that is, the buffer that was the primary before
  7611.     you started the sequence. The ARexx 'actpri' command will return the
  7612.     buffer number of the actual primary when used during sequencer
  7613.     operation.
  7614.                                  ----------
  7615.  
  7616.     addasr (new command)
  7617.     ====================
  7618.     This command causes the secondary buffer to be added to the primary
  7619.     buffer as a red-only component. This is used to recombine RGB
  7620.     images along with addasb and addasg.
  7621.     
  7622.                                  ----------
  7623.     addasg (new command)
  7624.     ====================
  7625.     This command causes the secondary buffer to be added to the primary
  7626.     buffer as a green-only component. This is used to recombine RGB
  7627.     images along with addasr and addasb.
  7628.     
  7629.                                  ----------
  7630.     addasb (new command)
  7631.     ====================
  7632.     This command causes the secondary buffer to be added to the primary
  7633.     buffer as a blue-only component. This is used to recombine RGB
  7634.     images along with addasr and addasg.
  7635.     
  7636.                                  ----------
  7637.  
  7638.     addasc (new command)
  7639.     ====================
  7640.     This command causes the secondary buffer to be added to the primary
  7641.     buffer as a cyan-only component. This is used to recombine CMYK
  7642.     images along with addasy, addasm and addask.
  7643.     
  7644.                                  ----------
  7645.  
  7646.     addasm (new command)
  7647.     ====================
  7648.     This command causes the secondary buffer to be added to the primary
  7649.     buffer as a magenta-only component. This is used to recombine CMYK
  7650.     images along with addasc, addasy and addask.
  7651.     
  7652.                                  ----------
  7653.  
  7654.  
  7655.  
  7656.  
  7657.  
  7658.  
  7659.  
  7660.  
  7661.  
  7662.                                    -127-                                   
  7663.     addasy (new command)
  7664.     ====================
  7665.     This command causes the secondary buffer to be added to the primary
  7666.     buffer as a yellow-only component. This is used to recombine CMYK
  7667.     images along with addasc, addasm and addask.
  7668.     
  7669.                                  ----------
  7670.  
  7671.     addask (new command)
  7672.     ====================
  7673.     This command causes the secondary buffer to be added to the primary
  7674.     buffer as a black-only component. This is used to recombine CMYK
  7675.     images along with addasc, addasm and addasy.
  7676.     
  7677.                                  ----------
  7678.  
  7679.     allowcancel (new command)
  7680.     =========================
  7681.     This command is intended for use during the operation of the
  7682.     sequencer. It allows the script to make the CANCEL button
  7683.     unavailable if needed; this allows the ARexx script to control its
  7684.     own destiny to some extent, which is needed when the ARexx script is
  7685.     managing resources on its own.
  7686.     
  7687.                                  ----------
  7688.  
  7689.     emboss (new command)
  7690.     ====================
  7691.     This ARexx command has a parameter of 0 to 255, which sets the depth
  7692.     of the effect. The effect is made by applying the secondary image to
  7693.     the primary image, after an area-selection process.
  7694.     
  7695.                                  ----------
  7696.  
  7697.     punch (new command)
  7698.     ====================
  7699.     This ARexx command has a parameter of 0 to 255, which sets the depth
  7700.     of the effect. The effect is made by applying the secondary image to
  7701.     the primary image, after an area-selection process.
  7702.     
  7703.                                  ----------
  7704.  
  7705.     loadasprimary (new command)
  7706.     loadassecondary (new command)
  7707.     loadasbrush (new command)
  7708.     loadasblend (new command)
  7709.     ==============================
  7710.     These ARexx commands all do essentially the same thing: Load a new
  7711.     image and then make that image the particular class of buffer
  7712.     mentioned in the command name. All four commands use tthe paths and
  7713.     extensions set with the IMAGEPATH and IMAGEEXT commands (or what was
  7714.     last typed into the program's file requester); they all return the
  7715.     buffer number of the newly created buffer.
  7716.     
  7717.                                  ----------
  7718.  
  7719.  
  7720.  
  7721.                                    -128-                                   
  7722.     newcurrent (new command)
  7723.     ========================
  7724.     This command allows you to take a specifed buffer and make it the
  7725.     current primary buffer. The command takes one parameter, the buffer
  7726.     number.
  7727.     
  7728.                                  ----------
  7729.  
  7730.     rectarea (new command)
  7731.     ======================
  7732.     This command allows you to specify a rectangular area selection from
  7733.     within an ARexx script. It takes four parameters: x1,y1,x2 and y2.
  7734.     
  7735.                   X1,Y1               X2,Y1
  7736.                     *-------------------*
  7737.                     |                   |
  7738.                     |                   |  Use this chart to select
  7739.                     |                   |  the x,y values you need.
  7740.                     |                   |
  7741.                     |                   |
  7742.                     *-------------------*
  7743.                   X1,Y2               X2,Y2
  7744.                     
  7745.                                  ----------
  7746.  
  7747.     tofront (new command)
  7748.     imtofront (newcommand)
  7749.     iptofront (newcommand)
  7750.     wbtofront (newcommand)
  7751.     ======================
  7752.     These commands manipulate Amiga screens. All except the 'wbtofront'
  7753.     command cause the image processor to become the front screen or
  7754.     screens. 'wbtofront' forces the Amiga WorkBench screen to the front.
  7755.  
  7756.                                  ----------
  7757.  
  7758.  
  7759.     version (new command)
  7760.     =====================
  7761.     This command returns a text string in the format "version, revision".
  7762.     
  7763.                                  ----------
  7764.  
  7765.     whiten (new command)
  7766.     ====================
  7767.     This command makes the primary buffer solid white. This is useful
  7768.     when you're planning on recombining CMYK images - you would start
  7769.     with an all-white buffer first.
  7770.     
  7771.                                  ----------
  7772.  
  7773.  
  7774.  
  7775.  
  7776.  
  7777.  
  7778.  
  7779.  
  7780.                                    -129-                                   
  7781.     Public Interface
  7782.     ================
  7783.     
  7784.     Provided PI Modules
  7785.     -------------------
  7786.     We have provided a number of PI modules with the image processor.
  7787.     These PI Modules provide:
  7788.     
  7789.         * JPEG load and save capability
  7790.         * PMBC load and save capability
  7791.         * RAW load and save (both color and B&W)
  7792.         * Direct insertion of an image to the FireCracker 24
  7793.     
  7794.     Black Belt Systems has accomplished a number of ``firsts'' with these
  7795.     PI Modules; Our image processing software is the first commercial
  7796.     software on the Amiga to provide JPEG load and save capability, and
  7797.     the only software of any kind to provide PMBC save and load capability.
  7798.     Our PI system is the very first example of a free and open image
  7799.     processing system, not to be confused with "fee" systems from other
  7800.     manufacturers where the developer must pay for the "privilege" of
  7801.     expanding the product. To develop modules for Imagemaster, all you need
  7802.     are the skills to do so; we'll help all we can, and for free! Call our
  7803.     technical support line at (406) 367-5509 anytime during mountain time
  7804.     business hours for developer support.
  7805.     
  7806.                                  ----------
  7807.     
  7808.     Installing the PI Modules
  7809.     =========================
  7810.     To install the provided modules, go into the disk in the release set
  7811.     that contains them and read the file entitled PI_Exec.doc. This gives
  7812.     explicit directions on installation and use.
  7813.     
  7814.                                  ----------
  7815.     
  7816.     Image Locking
  7817.     =============
  7818.     This capability provides a safety net under all Public Interface
  7819.     Modules. What happens is that when an ARexx script LOCKs a buffer, it
  7820.     cannot be changed from inside the image processing software; this
  7821.     allows external processes to run long operations without the concern
  7822.     that user might quit the program and pull the rug out from under, so
  7823.     to speak. Image locking is done with the following commands:
  7824.     
  7825.         LOCKIMAGE   <buffer number>
  7826.         UNLOCKIMAGE <buffer number>
  7827.         UNLOCKALL
  7828.     
  7829.     Note that the NEWBUF command now returns the buffer number if you set
  7830.     OPTIONS RESULTS before you call it. This conveniently provides the
  7831.     buffer number to lock without any further ARexx manipulation.
  7832.     
  7833.                                  ----------
  7834.  
  7835.  
  7836.  
  7837.  
  7838.  
  7839.                                    -130-                                   
  7840.     Unlock Buffer (in Buffer Panel)
  7841.     ===============================
  7842.     This is the "escape hatch" for the user if they believe that a buffer
  7843.     has been left locked by mistake. This should rarely, if ever, be used
  7844.     by the normal user. However, if you are developing PI Modules, it may
  7845.     come in very handy.
  7846.     
  7847.     Unlocking a locked buffer when it is still being accessed by an
  7848.     external process means that the image processor can delete the buffer,
  7849.     or even exit and delete everything - which means that the task that
  7850.     was writing into the buffer will now be writing in what the system
  7851.     thinks is free memory - very scary stuff. This button warns the user
  7852.     that unlocking isn't advised normally.
  7853.     
  7854.                                  ----------
  7855.     
  7856.     Access to any buffer for PI Modules
  7857.     -----------------------------------
  7858.     This is similar to what you can do with the JACKIN operation, but it
  7859.     is specific to a single buffer. The intent is to allow an ARexx script
  7860.     to create a new buffer which is NOT the primary buffer, and begin
  7861.     working on it without getting in the user's way; the user can continue
  7862.     to work normally, yet this other buffer is "happening"; for instance a
  7863.     ray tracer can render right into it while you do other things. Here
  7864.     are the relevant commands:
  7865.     
  7866.       plugpointer = PLUGIN <buffer number>
  7867.                     UNPLUG <plugpointer> (You should always UNPLUG when done!)
  7868.     
  7869.     which returns a pointer to a structure as follows:
  7870.     
  7871.                    struct plugina
  7872.                      {
  7873.                        struct jackinbuff *buffer;
  7874.                        unsigned char id[4];       / * 'P','L','U','G' * /
  7875.                      };
  7876.     
  7877.     ...where "buffer" points to:
  7878.     
  7879.                    struct jackinbuff
  7880.                      {
  7881.                        unsigned char *red;
  7882.                        unsigned char *green;
  7883.                        unsigned char *blue;
  7884.                        unsigned char *mask;
  7885.                        unsigned short x;
  7886.                        unsigned short y;
  7887.                      };
  7888.     
  7889.     The expected sequence of operations is to allocate a buffer, PLUGIN to
  7890.     it, LOCK it, do "stuff" to it, UNLOCK it, and finally UNPLUG it.
  7891.     
  7892.     Before you use a "plugina" structure, you should check the "id" array
  7893.     and make sure that the four characters P, L, U and G are in positions
  7894.     0, 1, 2 and 3. If not, the structure isn't valid and your command
  7895.     should fail with a warning to the user.
  7896.     
  7897.                                  ----------
  7898.                                    -131-                                   
  7899.     Structures
  7900.     ----------
  7901.     If you are working with the Public Interface, you'll find these
  7902.     structures useful:
  7903.     
  7904.     /*
  7905.      * Structure that represents each buffer in IM
  7906.      */
  7907.     struct rgbu
  7908.       {
  7909.         unsigned char *red;     /* X by Y size array */
  7910.         unsigned char *green;   /* X by Y size array */
  7911.         unsigned char *blue;    /* X by Y size array */
  7912.         unsigned char *mask;    /* X by Y size array (?null?) */
  7913.         unsigned short x;       /* X size */
  7914.         unsigned short y;       /* Y size */
  7915.       };
  7916.     
  7917.     The rgbu structure represents the data built for you about each of the
  7918.     buffers (Primary, Secondary, Brush, Blend, Undo). In the case of the
  7919.     UnDo buffer, the mask pointer will always be NULL.
  7920.     
  7921.     The red, green and blue pointers point to a linear array of unsigned
  7922.     bytes where 0 is fully dark, and 255 is fully bright for that color.
  7923.     
  7924.     The mask pointer, if present, points to an array of unsigned bytes
  7925.     that will contain non-zero values where the image exists, and zero
  7926.     where it does not. If you write image data in regions of the red,
  7927.     green and/or blue buffers that is masked (mask is zero), the user will
  7928.     never see it.  The memory is there and you may write in it if you feel
  7929.     you have a good reason (temporary storage?).
  7930.     
  7931.     The x and y values represent the x and y dimensions of the buffer.
  7932.     Buffer data is arranged X first, then Y. If an image is 320 by 200,
  7933.     the first pixel of the first line is at offset 0 in the buffer; the
  7934.     second pixel in the third line is at offset 961. You can locate pixel
  7935.     data using the following formula, where ``x'' is the width, Y is the
  7936.     current Y position and ``X'' is the current X position:
  7937.     
  7938.         p = (Y * x) + X
  7939.     
  7940.     This should be all the information you need to utilize the data in the
  7941.     rgbu structure.
  7942.     
  7943.                         <continued next page>
  7944.  
  7945.  
  7946.  
  7947.  
  7948.  
  7949.  
  7950.  
  7951.  
  7952.  
  7953.  
  7954.  
  7955.  
  7956.  
  7957.                                    -132-                                   
  7958.     /*
  7959.      * Represents the main info struct in IM
  7960.      */
  7961.     struct jacker
  7962.       {
  7963.         struct rgbu *pr;        /* Primary Buffer */
  7964.         struct rgbu *se;        /* Secondary Buffer */
  7965.         struct rgbu *un;        /* UnDo Buffer */
  7966.         struct rgbu *bl;        /* Blend Buffer */
  7967.         struct rgbu *br;        /* Brush Buffer */
  7968.         unsigned char *msk;     /* User Mask (Primary-size) */
  7969.         char jack[4];           /* verify: chars J,A,C,K */
  7970.         struct Screen *showscr; /* screen of gadget panel */
  7971.         unsigned char pname[4]; /* processor name: 'IP'00 'IM'00 or 'IMFC' */
  7972.         long ver;               /* version of the program */
  7973.       };
  7974.     
  7975.     The jacker structure contains only two types of data.
  7976.     
  7977.     First, there is a group of pointers to the various rgbu structures
  7978.     that represent the state of those buffers within the system.  If one
  7979.     of these pointers is NULL, then that buffer does not currently exist.
  7980.     
  7981.     Next, there is a pointer to a mask. This mask is always the same size
  7982.     as the Primary buffer; it will only exist if there is a Primary
  7983.     buffer; and as a result, you can get the X:Y size of the mask by
  7984.     examining the X:Y sizes specified in the rgbu structure for the
  7985.     Primary buffer.
  7986.     
  7987.                                  ----------
  7988.     
  7989.     PI Module Code Examples
  7990.     =======================
  7991.     The following code fragment assumes the use of the above structures.
  7992.     It is the beginning of a CLI command which accepts the pointer passed
  7993.     in from the ARexx script fragment shown, and then checks for
  7994.     reasonable values in the structures.
  7995.     
  7996.     There is an additional item in the jacker structure which is a short
  7997.     character array that is loaded with the four ASCII characters J, A, C
  7998.     and K. This is not documented in the manual, but it is there in all
  7999.     cases and you should ALWAYS check for it before assuming that
  8000.     everything is ok to proceed.
  8001.     
  8002.                         <continued next page>
  8003.  
  8004.  
  8005.  
  8006.  
  8007.  
  8008.  
  8009.  
  8010.  
  8011.  
  8012.  
  8013.  
  8014.  
  8015.  
  8016.                                    -133-                                   
  8017.     You should always do this, or it's equivalent, when beginning a
  8018.     process operation upon the primary buffer:
  8019.     
  8020.     void main(argc,argv)
  8021.       int argc;
  8022.       char *argv[];
  8023.       {
  8024.       int tot,i;
  8025.       struct jacker *j;
  8026.       unsigned short dx,dy,x,y;
  8027.         if ((argc != 2) || (strcmp(argv[1],"?")==0))
  8028.           {
  8029.             printf("%d arguments...\n",argc-1);
  8030.             printf("Requires one argument:\n\n");
  8031.             printf("'JACKIN' hex pointer\n\n");
  8032.             exit(1);
  8033.           }
  8034.         sscanf(argv[1],"%x",(int *)&j); /* *jackin */
  8035.         if (j->pr == 0)
  8036.           {
  8037.             printf("No Primary Buffer!\n");
  8038.             exit(2);
  8039.           }
  8040.         if ((j->pr->x == 0) || (j->pr->y == 0)) /* bad */
  8041.           {
  8042.             exit(3);
  8043.           }
  8044.         if (j->jack[0] != 'J') exit (4);  /* check sanity */
  8045.         if (j->jack[1] != 'A') exit (5);
  8046.         if (j->jack[2] != 'C') exit (6);
  8047.         if (j->jack[3] != 'K') exit (7);
  8048.         /*
  8049.          * We got here, so there IS a primary
  8050.          * buffer. We can now proceed...
  8051.          */
  8052.     
  8053.     The previous example used a value passed by the following ARexx
  8054.     code fragment:
  8055.     
  8056.         address 'IM_Port'; /* talk to the image processor */
  8057.         options results;   /* allow replies */
  8058.         'jackin';          /* get pointer to structs */
  8059.         jackadr = result;  /* copy return value */
  8060.         options;           /* disallow replies */
  8061.         'wbtofront';       /* bring WorkBench up */
  8062.         address command 'c:ccpr '||jackadr; /* send... */
  8063.     
  8064.     This ARexx fragment, or something extremely similar to it, is what you
  8065.     use to send the Public Interface pointer to your custom process, image
  8066.     reader, or image render program.
  8067.     
  8068.     Note that in combination with the other ARexx commands for panels,
  8069.     file requesters, area control specifiers and so on you can create a
  8070.     great deal of the required logic for your tool(s) using nothing more
  8071.     than the ARexx interface. There is a complete example of a "process"
  8072.     type of PI Module on the release disks, with SAS C source code, ARexx,
  8073.     and linkable object modules which provide progress bar indication and
  8074.     control panel based message services.
  8075.                                    -134-                                   
  8076.     Changes List (from v7.00 onwards)
  8077.     =================================
  8078.     The following information provides a terse list of changes applied to
  8079.     each revision of the image processors listed. For details, refer to
  8080.     the text in the preceeding sections. The most recent changes are at
  8081.     the end of the list.
  8082.  
  8083.     When reading the changes list, you can interpret items which have a
  8084.     leading (+) symbol to be features added; items which have a leading
  8085.     (-) symbol are items which have been removed or bugs we've fixed.
  8086.  
  8087.     v7.00
  8088.     -----
  8089.     + New ARexx command 
  8090.          'listreq "Title text",listfile,"keywords,etc"'
  8091.  
  8092.       If there is more than one keyword they should be put inside
  8093.       double quotes but separated by spaces or commas.
  8094.  
  8095.     + All new buffer creation operations that can have a choice for
  8096.       the destination bring up    . New as Secondary
  8097.                                   . New as Brush
  8098.                                   . New as Blend
  8099.       and when an existing buffer can be replaced, there is also
  8100.                                   . Old as Secondary (Hold Primary)
  8101.                                   . Old as Brush     (Hold Primary)
  8102.                                   . Old as Blend     (Hold Primary)
  8103.  
  8104.  
  8105.  
  8106.  
  8107.  
  8108.  
  8109.  
  8110.  
  8111.  
  8112.  
  8113.  
  8114.  
  8115.  
  8116.  
  8117.  
  8118.  
  8119.  
  8120.  
  8121.  
  8122.  
  8123.  
  8124.  
  8125.  
  8126.  
  8127.  
  8128.  
  8129.  
  8130.  
  8131.  
  8132.  
  8133.  
  8134.                                    -135-                                   
  8135.     v7.01
  8136.     -----
  8137.     + Change to ARexx command   DISPLAYMODE <mode> [lace] [quality]
  8138.          in IP only           modes are 0 = luma
  8139.                                         1 = avg
  8140.                                         2 = reg Ord Dither
  8141.                                         3 = HAM-E 24
  8142.                                         4 = HAM-E 18
  8143.                                         5 = EDD 256 colors
  8144.                               lace      0 = non-lace
  8145.                                         1 = lace display
  8146.                               quality   0 = normal
  8147.                                         1 = high quality
  8148.  
  8149.     - Now all display mode changes intelligently do not re-allocate
  8150.       display screen. Helps reduce memory fragmentation problems
  8151.  
  8152.     + Image composition Logical And
  8153.  
  8154.     + Image composition Logical Or
  8155.  
  8156.     + New compose operation Add as Cyan     (from color separation)
  8157.       and ARexx command 'addasc'
  8158.  
  8159.     + New compose operation Add as Magenta  (from color separation)
  8160.       and ARexx command 'addasm'
  8161.  
  8162.     + New compose operation Add as Yellow   (from color separation)
  8163.       and ARexx command 'addasy'
  8164.  
  8165.     + New compose operation Add as Black    (from color separation)
  8166.       and ARexx command 'addask [ucr] [gcr]'
  8167.       These <ucr> <gcr> values are the user's best estimates of what
  8168.       was used to create the separation and only the ratio
  8169.       is significant.  Normally they are  64, 64.
  8170.       If they are ommitted then the program supplies the last
  8171.       values it used, so separating and reloading will work simply.
  8172.  
  8173.     + New ARexx command 'WHITEN' which makes the primary image all white
  8174.       (faster than newbuf can)
  8175.  
  8176.     + New ARexx command 'VERSION' which returns the version,revision
  8177.  
  8178.  
  8179.  
  8180.  
  8181.  
  8182.  
  8183.  
  8184.  
  8185.  
  8186.  
  8187.  
  8188.  
  8189.  
  8190.  
  8191.  
  8192.  
  8193.                                    -136-                                   
  8194.     v7.02
  8195.     -----
  8196.     + Compose Morph screen and operations enabled for release
  8197.  
  8198.     + New File I/O buttons    'Set Render Mode'
  8199.                               'Set Render Size'
  8200.                               'Set Dither Type'
  8201.       And 'Render to File' just asks for area select
  8202.  
  8203.     + Dither types added are   No Dither
  8204.                                Normal Edd
  8205.                                Floyd-Steinberg
  8206.                                Jarvis,Judice,Ninke
  8207.                                Stucki
  8208.     + Lace gadget in Render Size panel now changes the Vertical Size
  8209.  
  8210.     + Amiga mode renders now update the paint palette with the
  8211.       rendered palette.
  8212.       So that before rendering   'PALETTELOAD name'     will load colors
  8213.       and after rendering        'SAVEPAL name'  will save rendered colors
  8214.       Note! All renders from ARexx always took note of the <usepalette>
  8215.       parameter which causes the renders to use colors from the palette.
  8216.  
  8217.     + File I/O panel now has a 'Set Render Mode' option.
  8218.       The Render to File operation no longer asks about render settings.
  8219.  
  8220.     + Aspect ratio is now saved with rendered images, and
  8221.       all IFF file loading sets the aspect ratio of the incoming image.
  8222.  
  8223.     + Renders to IFF with more than 100 colors use Ben's Spectral method
  8224.       less colors use Barry's method.
  8225.  
  8226.     + IP 'gate" enabled for release. Only HAM-E owners will now be
  8227.       able to use IP, as we originally intended.
  8228.  
  8229.  
  8230.  
  8231.  
  8232.  
  8233.  
  8234.  
  8235.  
  8236.  
  8237.  
  8238.  
  8239.  
  8240.  
  8241.  
  8242.  
  8243.  
  8244.  
  8245.  
  8246.  
  8247.  
  8248.  
  8249.  
  8250.  
  8251.  
  8252.                                    -137-                                   
  8253.     7.03:
  8254.     -----
  8255.     + Dither Type panel provides 'Left->Right Error Prop'
  8256.                               or 'Serpentine  Error Prop'
  8257.  
  8258.     - 16 color Hi-Res Render and 32 color Lo-Res render had their
  8259.       vbar titles swapped. Fixed.
  8260.  
  8261.     + New dither methods       Random F-S
  8262.                                Dual Random F-S
  8263.  
  8264.     + Excursion limit gadget now in dither panel
  8265.  
  8266.     + Render and Morph path and settings now get saved with default file
  8267.  
  8268.     + Chekov Forcing in dither panel added. Significant render improvements
  8269.       are possible using this option in low color renders
  8270.  
  8271.     + Match Image Size in Render Size panel sets props
  8272.  
  8273.     + DCTV 1.1 images can now be read as well as 1.0 and library generated ones
  8274.  
  8275.  
  8276.  
  8277.  
  8278.  
  8279.  
  8280.  
  8281.  
  8282.  
  8283.  
  8284.  
  8285.  
  8286.  
  8287.  
  8288.  
  8289.  
  8290.  
  8291.  
  8292.  
  8293.  
  8294.  
  8295.  
  8296.  
  8297.  
  8298.  
  8299.  
  8300.  
  8301.  
  8302.  
  8303.  
  8304.  
  8305.  
  8306.  
  8307.  
  8308.  
  8309.  
  8310.  
  8311.                                    -138-                                   
  8312.     7.04:
  8313.     -----
  8314.     + New compose operation Add as Red     (from color separation)
  8315.       and ARexx command 'addasr'
  8316.  
  8317.     + New compose operation Add as Green     (from color separation)
  8318.       and ARexx command 'addasg'
  8319.  
  8320.     + New compose operation Add as Blue     (from color separation)
  8321.       and ARexx command 'addasb'
  8322.  
  8323.     + You can now select rendering as the output of the morph capability
  8324.       instead of only 24-bit files. Uses the current render settings
  8325.  
  8326.     - Panning in IP would confuse at the bottom edge, fixed
  8327.  
  8328.     - Changing display in IP from non-lace to lace when panned to the 
  8329.       bottom sometimes crashed.
  8330.  
  8331.     + Auto-Activate control in Display control panel for multitasking
  8332.       friendly operations. If Auto-Activate is off, no window will
  8333.       activate and no screen will come to the front automatically.
  8334.  
  8335.     - In Morph sequence after the 'Total Frames' is decreased to less
  8336.       than the 'End Frame', the end frame was reset to one too high.
  8337.  
  8338.     + Special keystroke operation 'C' now saves the canvas to disk
  8339.       as an IFF in most areas of the program. Special keystroke 'G'
  8340.       still active for all gadget panels.
  8341.  
  8342.     - Special keystroke operation 'P' (show display palette) is only
  8343.       active when an image has just been drawn in the canvas.
  8344.  
  8345.     + File requester now <selects> when return is hit in the file name
  8346.       gadget. Also, pressing return in the path and extension gadgets does
  8347.       not blank the other fields. The next active gadget then becomes the
  8348.       file name gadget.
  8349.  
  8350.  
  8351.  
  8352.  
  8353.  
  8354.  
  8355.  
  8356.  
  8357.  
  8358.  
  8359.  
  8360.  
  8361.  
  8362.  
  8363.  
  8364.  
  8365.  
  8366.  
  8367.  
  8368.  
  8369.  
  8370.                                    -139-                                   
  8371.     8.00:
  8372.     -----
  8373.     + 68030 and FPU version of IM, IMFC and IP now available
  8374.  
  8375.     + Sequence Processor added for multiple image handling
  8376.  
  8377.     + Shadow generation added to all compose operations
  8378.  
  8379.     + Morph processor can now tack down image edges
  8380.  
  8381.     + Filmstrip capability added
  8382.  
  8383.     + ARexx command "finish" added for sequence processor
  8384.  
  8385.     + ARexx command "tween" added for sequence processor
  8386.  
  8387.     + Panel may now be hidden during progress bar activities (right mouse)
  8388.  
  8389.     + Caricature operation now has "effect" control as well as radius
  8390.  
  8391.     + Dome operation now has "effect" control as well as radius
  8392.  
  8393.     + Caricature ARexx macro now has extra parameter for effect (def to 100%)
  8394.  
  8395.     + Dome ARexx macro now has extra parameter for effect (def to 100%)
  8396.  
  8397.     + GIF reader taught how to deal with faulty image size info
  8398.  
  8399.     - Errors from 7.02 onwards in 256 color image generation fixed
  8400.  
  8401.     - ARexx oval and rect commands fixed
  8402.  
  8403.  
  8404.  
  8405.  
  8406.  
  8407.  
  8408.  
  8409.  
  8410.  
  8411.  
  8412.  
  8413.  
  8414.  
  8415.  
  8416.  
  8417.  
  8418.  
  8419.  
  8420.  
  8421.  
  8422.  
  8423.  
  8424.  
  8425.  
  8426.  
  8427.  
  8428.  
  8429.                                    -140-                                   
  8430.     8.01:
  8431.     -----
  8432.     - Error that caused 68000 version of 8.00 to crash instantly
  8433.       if the user attempted to morph fixed
  8434.  
  8435.     - A number of "enforcer hits" fixed, all harmless (byte reads from low
  8436.       memory)
  8437.  
  8438.     - Bug that caused 250 ms delay (1/4 second) each time a morph
  8439.       point was added in a 3000-class machine fixed
  8440.  
  8441.  
  8442.  
  8443.  
  8444.  
  8445.  
  8446.  
  8447.  
  8448.  
  8449.  
  8450.  
  8451.  
  8452.  
  8453.  
  8454.  
  8455.  
  8456.  
  8457.  
  8458.  
  8459.  
  8460.  
  8461.  
  8462.  
  8463.  
  8464.  
  8465.  
  8466.  
  8467.  
  8468.  
  8469.  
  8470.  
  8471.  
  8472.  
  8473.  
  8474.  
  8475.  
  8476.  
  8477.  
  8478.  
  8479.  
  8480.  
  8481.  
  8482.  
  8483.  
  8484.  
  8485.  
  8486.  
  8487.  
  8488.                                    -141-                                   
  8489.     8.02:
  8490.     -----
  8491.     + Balance to Color in process panel
  8492.  
  8493.     + The File I/O panel now allows render settings to be changed even
  8494.       when no buffer is loaded. Inappropriate gadgets are ghosted.
  8495.  
  8496.     + Render and Save as 24-bit can both be selected in multi-frame
  8497.       processor
  8498.  
  8499.     + Load and save main mask
  8500.     + ARexx commands 'loadmask <complete_filename> [mode]'
  8501.                          mode   1 = Replace existing mask (default) 
  8502.                                 2 = OR
  8503.                                 3 = AND
  8504.                                 4 = XOR
  8505.                                 5 = MINUS
  8506.  
  8507.       ...and 'savemask <complete_filename>'
  8508.  
  8509.     + Load and save image mask
  8510.     + ARexx commands 'loadimask <complete_filename> [mode]'
  8511.                          mode   1 = Replace existing mask (default) 
  8512.                                 2 = OR
  8513.                                 3 = AND
  8514.                                 4 = XOR
  8515.                                 5 = MINUS
  8516.       If the image does not already have a mask, [mode] is forced to 1
  8517.  
  8518.       ...and 'saveimask <complete_filename>'
  8519.  
  8520.     + Amiga draw modes in IM improved
  8521.  
  8522.     + ARexx command 'imageaspect <picnum>' reports aspect ratio
  8523.  
  8524.     + Multi-frame processor has 'Execute Using Primary'
  8525.  
  8526.     - Cancel in multi-frame processor now resets the 'finish' status
  8527.  
  8528.     - The script in the multi-frame processor was clipping in the
  8529.       wrong place and clipping in this panel could disturb the actual
  8530.       script and path strings
  8531.  
  8532.     - Trying to run the multi-frame processor without a script is
  8533.       handled with a message
  8534.  
  8535.     - Dome and caricature could not handle large negative effect amounts
  8536.       that can be passed from ARexx
  8537.  
  8538.     - Number of frames was not being reset in display panel after a
  8539.       new film strip was loaded
  8540.  
  8541.  
  8542.  
  8543.  
  8544.  
  8545.  
  8546.  
  8547.                                    -142-                                   
  8548.     9.00:
  8549.     -----
  8550.     + Process panel and sub-panel reorganization
  8551.  
  8552.     + Compose panel reorganization
  8553.  
  8554.     + User can now select either the 2.0 (ASL) file requester or the
  8555.       Black Belt Systems file requester, as they prefer. Khalid
  8556.       Aldoseri's ASL replacement file requester has also been tested and
  8557.       now works with this software. ARexx supported.
  8558.  
  8559.     + "Zoom Clip" operation added. Provides a scaled zoom into the
  8560.        primary image. ARexx supported.
  8561.  
  8562.     + The font list requester can now handle fonts with names
  8563.       (including the point size) up to 46 characters in length
  8564.  
  8565.     + Sort directory list button in Multi-frame Processor allows
  8566.       you to optionally sort the list of files
  8567.  
  8568.     + Info button put back into main panel for ease of access
  8569.  
  8570.     + Color Separation button in File I/o panel moved to the second line
  8571.       so that all render controls would locate in the first line
  8572.  
  8573.     - Numerous small bug fixes applied.
  8574.  
  8575.  
  8576.  
  8577.  
  8578.  
  8579.  
  8580.  
  8581.  
  8582.  
  8583.  
  8584.  
  8585.  
  8586.  
  8587.  
  8588.  
  8589.  
  8590.  
  8591.  
  8592.  
  8593.  
  8594.  
  8595.  
  8596.  
  8597.  
  8598.  
  8599.  
  8600.  
  8601.  
  8602.  
  8603.  
  8604.  
  8605.  
  8606.                                    -143-                                   
  8607.     9.01:
  8608.     -----
  8609.     - problem when calling FR from ARexx with new requesters only
  8610.  
  8611.  
  8612.  
  8613.  
  8614.  
  8615.  
  8616.  
  8617.  
  8618.  
  8619.  
  8620.  
  8621.  
  8622.  
  8623.  
  8624.  
  8625.  
  8626.  
  8627.  
  8628.  
  8629.  
  8630.  
  8631.  
  8632.  
  8633.  
  8634.  
  8635.  
  8636.  
  8637.  
  8638.  
  8639.  
  8640.  
  8641.  
  8642.  
  8643.  
  8644.  
  8645.  
  8646.  
  8647.  
  8648.  
  8649.  
  8650.  
  8651.  
  8652.  
  8653.  
  8654.  
  8655.  
  8656.  
  8657.  
  8658.  
  8659.  
  8660.  
  8661.  
  8662.  
  8663.  
  8664.  
  8665.                                    -144-                                   
  8666.     9.02:
  8667.     -----
  8668.     - Jarvis and Stucki dither were broken
  8669.  
  8670.     - The Info gadget needed to be ghosted when IP started until the
  8671.       code is entered
  8672.  
  8673.     - Zoom Clip prop gadgets would drop percent by 1 on re-entry
  8674.  
  8675.  
  8676.  
  8677.  
  8678.  
  8679.  
  8680.  
  8681.  
  8682.  
  8683.  
  8684.  
  8685.  
  8686.  
  8687.  
  8688.  
  8689.  
  8690.  
  8691.  
  8692.  
  8693.  
  8694.  
  8695.  
  8696.  
  8697.  
  8698.  
  8699.  
  8700.  
  8701.  
  8702.  
  8703.  
  8704.  
  8705.  
  8706.  
  8707.  
  8708.  
  8709.  
  8710.  
  8711.  
  8712.  
  8713.  
  8714.  
  8715.  
  8716.  
  8717.  
  8718.  
  8719.  
  8720.  
  8721.  
  8722.  
  8723.  
  8724.                                    -145-                                   
  8725.     9.03:
  8726.     -----
  8727.     
  8728.     - Radial Wave ran out of precision in images higher than 400 lines
  8729.  
  8730.  
  8731.  
  8732.  
  8733.  
  8734.  
  8735.  
  8736.  
  8737.  
  8738.  
  8739.  
  8740.  
  8741.  
  8742.  
  8743.  
  8744.  
  8745.  
  8746.  
  8747.  
  8748.  
  8749.  
  8750.  
  8751.  
  8752.  
  8753.  
  8754.  
  8755.  
  8756.  
  8757.  
  8758.  
  8759.  
  8760.  
  8761.  
  8762.  
  8763.  
  8764.  
  8765.  
  8766.  
  8767.  
  8768.  
  8769.  
  8770.  
  8771.  
  8772.  
  8773.  
  8774.  
  8775.  
  8776.  
  8777.  
  8778.  
  8779.  
  8780.  
  8781.  
  8782.  
  8783.                                    -146-                                   
  8784.     9.04:
  8785.     -----
  8786.     + Entire image area selection made about 4 times faster
  8787.     
  8788.     - Radial Wave, Dome, and Caricature were unprotected against
  8789.       zero wavelengths/radius passed from ARexx
  8790.       
  8791.     - Radial wave prop gadgets got thrown back to zero after being
  8792.       last set at max
  8793.  
  8794.  
  8795.  
  8796.  
  8797.  
  8798.  
  8799.  
  8800.  
  8801.  
  8802.  
  8803.  
  8804.  
  8805.  
  8806.  
  8807.  
  8808.  
  8809.  
  8810.  
  8811.  
  8812.  
  8813.  
  8814.  
  8815.  
  8816.  
  8817.  
  8818.  
  8819.  
  8820.  
  8821.  
  8822.  
  8823.  
  8824.  
  8825.  
  8826.  
  8827.  
  8828.  
  8829.  
  8830.  
  8831.  
  8832.  
  8833.  
  8834.  
  8835.  
  8836.  
  8837.  
  8838.  
  8839.  
  8840.  
  8841.  
  8842.                                    -147-                                   
  8843.     9.05:
  8844.     -----
  8845.     + The multi-frame and morph sequencer can now both handle four scripts:
  8846.     
  8847.                          (1) Opening      before all frames.
  8848.                    :--   (2) Pre-render   after image load or morph + ops,
  8849.              loop  |                      but prior to the save or render.
  8850.                    :--   (3) Post-render  after each render.
  8851.                          (4) Closing      after all frames.
  8852.       
  8853.       Any of these script names may be blank and will then be skipped. If
  8854.       any script exists, you MUST complete it with a 'finish'; command!
  8855.       The objective here is to allow you to create a "setup" script, a "do
  8856.       the job" script, a "clean up" script, and a "finish everything"
  8857.       script. We have used this to build in a complete ANIM generator...
  8858.       
  8859.         rxpi:animwr1.rexx - for the "setup" script
  8860.         [optional script] - for the "do the job" script
  8861.         rxpi:animwr3.rexx - for the "clean up"  script
  8862.         rxpi:animwr4.rexx - for the "finish everything" script
  8863.       
  8864.       ...for any set of effects you run in the sequence processor or the
  8865.       morph generator. For just morphing or rendering, you won't need to
  8866.       use a "do the job" script. The morphed output from a sequence
  8867.       becomes the current buffer temporarily. The displaced current buffer
  8868.       and the old secondary buffer are locked until they are returned
  8869.       after the sequence.
  8870.  
  8871.     + The gadget panel can be displayed in lace via a default settings
  8872.       button (you have to set it, save defaults, and then restart)
  8873.       
  8874.     + ARexx command 'setpalette <pos> <red> <green> <blue>' added
  8875.     
  8876.     + Aspect ratios default to 44 / 52 rather than 10 / 11
  8877.     
  8878.     + Render Palette from Image now uses the A method
  8879.       for number of colors under 100 and B method over 100
  8880.       
  8881.     + New Process/Special Effect - 'Render Palette for Amiga Ham'
  8882.  
  8883.     - When a non-primary buffer is being rendered, the 'Selected Area'
  8884.       should be automatically set to 'entire', and if 'Match Image Size'
  8885.       is selected then output resolution is set to the full image size
  8886.       
  8887.     - Color assignment for 16 color Hi-res just after image colors had
  8888.       been mostly but not radically changed, were sometimes throwing in
  8889.       a strange color causing renders to be noisy.
  8890.       
  8891.     - 16 color Hi-Res and 32 color Lo-Res gadgets in render mode panel
  8892.       were inverted text-wise - cosmetic change only for panel
  8893.       
  8894.     - Render from ARexx would not render sometimes
  8895.     
  8896.     - Morph and multi-frame sequence now appends .0001,.0002,.. to
  8897.       output filenames instead of "_" character + number
  8898.       
  8899.     - Clip with exact size will now remember its parent
  8900.  
  8901.                                    -148-                                   
  8902.     9.06:
  8903.     -----
  8904.     - Cancelling the multi-frame processor will replace the displaced
  8905.       buffers
  8906.  
  8907.     + The multi-frame processor can run without any scripts at all
  8908.  
  8909.     - When rendering from the multi-frame process the entire area
  8910.       is marked for rendering
  8911.  
  8912.  
  8913.  
  8914.  
  8915.  
  8916.  
  8917.  
  8918.  
  8919.  
  8920.  
  8921.  
  8922.  
  8923.  
  8924.  
  8925.  
  8926.  
  8927.  
  8928.  
  8929.  
  8930.  
  8931.  
  8932.  
  8933.  
  8934.  
  8935.  
  8936.  
  8937.  
  8938.  
  8939.  
  8940.  
  8941.  
  8942.  
  8943.  
  8944.  
  8945.  
  8946.  
  8947.  
  8948.  
  8949.  
  8950.  
  8951.  
  8952.  
  8953.  
  8954.  
  8955.  
  8956.  
  8957.  
  8958.  
  8959.  
  8960.                                    -149-                                   
  8961.     9.07:
  8962.     -----
  8963.     - Color preview not showing when the gadget panel is in lace
  8964.     
  8965.     - Define color from composition panel was not running
  8966.  
  8967.  
  8968.  
  8969.  
  8970.  
  8971.  
  8972.  
  8973.  
  8974.  
  8975.  
  8976.  
  8977.  
  8978.  
  8979.  
  8980.  
  8981.  
  8982.  
  8983.  
  8984.  
  8985.  
  8986.  
  8987.  
  8988.  
  8989.  
  8990.  
  8991.  
  8992.  
  8993.  
  8994.  
  8995.  
  8996.  
  8997.  
  8998.  
  8999.  
  9000.  
  9001.  
  9002.  
  9003.  
  9004.  
  9005.  
  9006.  
  9007.  
  9008.  
  9009.  
  9010.  
  9011.  
  9012.  
  9013.  
  9014.  
  9015.  
  9016.  
  9017.  
  9018.  
  9019.                                    -150-                                   
  9020.     9.08
  9021.     ----
  9022.     + Post-render Script gets passed three parameters instead of two, used
  9023.       in the animation writer for the sequence processor and morph tools;
  9024.       they are:
  9025.       
  9026.           thisframe totalframes "renderfilename"
  9027.           
  9028.       NOTE: The ANIM generation tools MUST be run using 9.08 or later;
  9029.             they require this particular capability and will not operate
  9030.             properly on earlier versions of the image manipulation s/w.
  9031.  
  9032.  
  9033.  
  9034.  
  9035.  
  9036.  
  9037.  
  9038.  
  9039.  
  9040.  
  9041.  
  9042.  
  9043.  
  9044.  
  9045.  
  9046.  
  9047.  
  9048.  
  9049.  
  9050.  
  9051.  
  9052.  
  9053.  
  9054.  
  9055.  
  9056.  
  9057.  
  9058.  
  9059.  
  9060.  
  9061.  
  9062.  
  9063.  
  9064.  
  9065.  
  9066.  
  9067.  
  9068.  
  9069.  
  9070.  
  9071.  
  9072.  
  9073.  
  9074.  
  9075.  
  9076.  
  9077.  
  9078.                                    -151-                                   
  9079.     9.09
  9080.     ----
  9081.     + VERY IMPORTANT For Image Professional Users!!! In Image Professional,
  9082.       the ARexx port name has been CHANGED from "IP_Port" to "IM_Port"!
  9083.       For all of our scripts, this should cause no problem, as they have
  9084.       been written (up to this date) to use either the IP_Port name or the
  9085.       IM_Port name. From now on, we will write ONLY for the IM_Port name.
  9086.       This will simplify many ARexx scripts, and will ensure that third-
  9087.       party scripts have fewer problems between the various versions of
  9088.       our image manipulation software. At this point, Imagemaster,
  9089.       Imagemaster F/c and Image Professional ALL have the same port name.
  9090.     
  9091.     + Many new PI Module capabilities (see PI_EXEC.DOC from the PI
  9092.       disk or the PIE.LZH archive for telecomm updates)
  9093.     
  9094.     + New capabilities which provide for automatic display updating
  9095.       on external/additional display dedvices. FC24 PI Module
  9096.       updated to utilize this capability. Display updating is
  9097.       very efficient, information on the rectangular sub-region that
  9098.       was changed is used to limit display refreshes.
  9099.  
  9100.     + Added ANIM writer capability (this also requires latest PI Mods)
  9101.  
  9102.     + If the morph generator is not calling any scripts, it will
  9103.       not redraw the main display for each frame (this saves time).
  9104.     
  9105.     + Roll image geometric process added 
  9106.  
  9107.     - Palette from image operation would disturb the display. This
  9108.       has been fixed.
  9109.  
  9110.     - Bug where Image Professional only could not always reach the
  9111.       bottom scan line of an image using the area selection tools
  9112.       such as rectangle. Fixed.
  9113.     
  9114.     - ASKPROP ARexx command would not return values larger than
  9115.       four digits. Fixed.
  9116.  
  9117.  
  9118.  
  9119.  
  9120.  
  9121.  
  9122.  
  9123.  
  9124.  
  9125.  
  9126.  
  9127.  
  9128.  
  9129.  
  9130.  
  9131.  
  9132.  
  9133.  
  9134.  
  9135.  
  9136.  
  9137.                                    -152-                                   
  9138.     9.10
  9139.     ----
  9140.     + Random dither now has luma mode; this is a VERY nice addition
  9141.       to the random dither effect - try it and see!
  9142.     
  9143.     + Pressing 'r' when the morph display is on will redraw the
  9144.       two morph windows as well as the control points
  9145.     
  9146.     + Added "Exclude Black" button to histograms... this has the effect
  9147.       of amplifying the histogram by removing what is often a high
  9148.       content, but low-information portion of the histogram data.
  9149.     
  9150.     + Select ALL button added to sequence processor
  9151.     
  9152.     + Filmstrip frames are now numbered
  9153.     
  9154.     + Added "reverse" animation button to filmstrip controls
  9155.     
  9156.     + You can now delete filmstrip frames by number
  9157.     
  9158.     + You can now insert filmstrip frames by number
  9159.     
  9160.     + You can now swap filmstrip frames by number
  9161.     
  9162.     + Filmstrip re-allocation is now non-destructive so that you may
  9163.       change the number of frames as a way to shorten or lengthen an
  9164.       existing filmstrip.
  9165.     
  9166.     - Loading images which did NOT have masks would not work properly
  9167.       as a brush.
  9168.     
  9169.     - Emboss positioning works better now
  9170.     
  9171.     + New ARexx commands 'emboss <contrast>'
  9172.                      and 'punch  <contrast>'
  9173.       Contrast is usually from 0 to 255.  A secondary image needs to
  9174.       be assigned, and an area selection should be made prior to the
  9175.       emboss or punch command.
  9176.       
  9177.     - Clip with exact size would miss the bottom line in Imagemaster
  9178.     
  9179.     - Imagemaster palette foreground/background selection could get
  9180.       confused
  9181.       
  9182.     - Certain "short" windows in the control panels would show a bit
  9183.       of underlying data because they were too short - we've added
  9184.       some height so that this harmless, but unsightly artifact is gone.
  9185.  
  9186.  
  9187.  
  9188.  
  9189.  
  9190.  
  9191.  
  9192.  
  9193.  
  9194.  
  9195.  
  9196.                                    -153-                                   
  9197.     9.11
  9198.     ----
  9199.     + The pointer is invisible when moving points in a morph
  9200.     
  9201.     + Filmstip now has speeds up to 30
  9202.     
  9203.     + Loading and saving filmstrips has progress bar
  9204.     
  9205.     + Redraw scripts are sent a 'finish' parameter when the redraw
  9206.       script option is turned off or the image processor ended
  9207.       
  9208.     + The Redraw script name cannot be changed while the redraw
  9209.       script option is ON.
  9210.  
  9211.     + New ARexx command 'pal' which reports 0 for NTSC 1 for PAL
  9212.     
  9213.     + New ARexx command 'autoprimary <mode>'
  9214.       mode = 0  new buffers do not become the primary unless there are none
  9215.       mode = 1     "        always become primary
  9216.       
  9217.     + DCTV renders go to 566 vertically if IM is in PAL
  9218.  
  9219.     - Dual Vertical and Horizontal Warp range could divide by zero
  9220.       when the area is 1 pixel wide
  9221.  
  9222.     - Undo in Imagemaster now takes care of the color space so that
  9223.       undo-ing to an image with a different palette will no longer
  9224.       break during partial redraws.
  9225.  
  9226.  
  9227.  
  9228.  
  9229.  
  9230.  
  9231.  
  9232.  
  9233.  
  9234.  
  9235.  
  9236.  
  9237.  
  9238.  
  9239.  
  9240.  
  9241.  
  9242.  
  9243.  
  9244.  
  9245.  
  9246.  
  9247.  
  9248.  
  9249.  
  9250.  
  9251.  
  9252.  
  9253.  
  9254.  
  9255.                                    -154-                                   
  9256.     9.12
  9257.     ----
  9258.     + Pre-defined shape area selections!
  9259.           Area select panel now has -
  9260.              'Shape from Corner'
  9261.              'Shape Centered'
  9262.              'Load Shape'
  9263.       See EXAMPLE.ISH  for an example shape file format.
  9264.  
  9265.     - Perspective scale was not correctly using the image local mask
  9266.       when it existed
  9267.  
  9268.     - EXTRA_HALFBRITE flag was not being set in IFF saves
  9269.  
  9270.     - Area print allowed area to be 1 pixel past image right and bottom
  9271.       causing the wrong area to be printed
  9272.  
  9273.     - Drawing an elipse on a <= 2x2 image would crash
  9274.  
  9275.     - Palette and range screens would draw with the wrong colors when
  9276.       the main display was in 16-color HI-Res
  9277.  
  9278.     - Palette and range screens would disturb main canvas color
  9279.       redraw color space
  9280.  
  9281.     - Hue change window overwrote the left text field
  9282.  
  9283.     - New/From Blend/From Digiview selection shows below gadgets
  9284.  
  9285.     - Message window was also too short
  9286.  
  9287.     - Buffer rename window was also too short
  9288.  
  9289.     - Paint fill operations did not clear mask second time through
  9290.  
  9291.     - New buffer did not initialize to color if there was no primary
  9292.       buffer
  9293.  
  9294.     - 2-way vertical blend was not using lower transparency curve
  9295.       correctly
  9296.  
  9297.     - Map to range went past the range in bright areas
  9298.  
  9299.     - Workaround for DCTV overscan limit of 704 under AmigaDOS 2.0
  9300.  
  9301.     - Painting redraw in IM could redraw outside screen area
  9302.  
  9303.     - AmigaDOS file requester interface returned extension twice
  9304.  
  9305.  
  9306.  
  9307.  
  9308.  
  9309.  
  9310.  
  9311.  
  9312.  
  9313.  
  9314.                                    -155-                                   
  9315.     9.13
  9316.     ----
  9317.     + Distance Calculator in analysis panel. Converts distance measured
  9318.       (or typed in) between Inches, cm, picas, points,
  9319.       Horizontal pixels, and Vertical pixels.
  9320.       
  9321.     + Pad Canvas operation in Re-Sizing and Clipping in Process Panel
  9322.       pads the selected area to a new size allowing the user to
  9323.       position the clipped area in any of 9 arrangements.
  9324.       
  9325.     + 'padcanvas <Xsize> <Ysize> <Position> <NewName>'  ARexx command.
  9326.       It returns the buffer number.
  9327.       Xsize and Ysize are the dimensions of the new buffer,
  9328.       Position is 1 = Top Left
  9329.                   2 = Top Center
  9330.                   3 = Top Right
  9331.                   4 = Middle Left
  9332.                   5 = Middle Center
  9333.                   6 = Middle Right
  9334.                   7 = Bottom Left
  9335.                   8 = Bottom Center
  9336.                   9 = Bottom Right
  9337.      The Following is a working script :-
  9338.                     
  9339.                     /* ARexx example of PADCANVAS operation * /
  9340.                     address('IM_Port');
  9341.                     'entire';
  9342.                     options results;
  9343.                     'padcanvas 400 400 5 NewClip';
  9344.                     'newcurrent '||result;
  9345.                     exit 0;
  9346.  
  9347.     + Horizontal and Vertical Flip operations now work outside of and
  9348.       move the image local mask
  9349.       
  9350.     + Morph 'Drop Grid' button
  9351.     
  9352.     + Composition using color keying now keys the area before doing 
  9353.       transparency channel generation, so that the transparency edges
  9354.       follow the keyed area.
  9355.       
  9356.     + Filmstrip has a Color mode; Display control has 'Color Film'
  9357.       button just like 'Lace Film' (FILMVIEW 1.01 is required to
  9358.       view color filmstrips)
  9359.       
  9360.     + 'newbrush <bufferNumber>'   ARexx command selects a new brush
  9361.     
  9362.     + 'newblend <bufferNumber>'   ARexx command selects a new blend control
  9363.                                   buffer
  9364.  
  9365.                         <continued next page>
  9366.  
  9367.  
  9368.  
  9369.  
  9370.  
  9371.  
  9372.  
  9373.                                    -156-                                   
  9374. Imagemaster 9.13 changes, continued
  9375. -----------------------------------
  9376.  
  9377.     + The following LOADAS... ARexx commands all use the image path and
  9378.       extension that were set with 'IMAGEPATH' and 'IMAGEEXT' commands or
  9379.       last typed into IM's file requester, and return the buffer number of
  9380.       the new buffer.
  9381.       'loadasprimary <name>'      ARexx command loads an image file and
  9382.         makes it the primary.
  9383.         
  9384.     + 'loadassecondary <name>'    ARexx command loads an image file and
  9385.         makes it the secondary.
  9386.         
  9387.     + 'loadasbrush <name>'        ARexx command loads an image file and
  9388.         makes it the brush.
  9389.         
  9390.     + 'loadasblend <name>'        ARexx command loads an image file and
  9391.         makes it the blend control buffer.
  9392.         
  9393.     + Morph  Discrete Velocity Control
  9394.         The Morph panel has added :-
  9395.          .  'Set Point Velocity' button to set the associated velocity
  9396.              of each point;
  9397.          .  'Set VELs' to load or draw new velocity curves.
  9398.       The default velocity curve for control points is <normal>.
  9399.       The associated velocity curves are saved with the points file.
  9400.       Three standard Velocity curves are available at startup:
  9401.        <normal>, <early>, and <late>.  If these curves are changed by
  9402.        the user, they are no longer standard and will therefore be
  9403.        automatically saved with the points file.
  9404.        
  9405.     - Pointer remained busy after palette screen closure
  9406.     
  9407.     - Palette mapping did not do entire image area selection
  9408.     
  9409.     - Cut out brush in Paint Control with entire image or previous region
  9410.       was being ignored
  9411.       
  9412.  
  9413.  
  9414.  
  9415.  
  9416.  
  9417.  
  9418.  
  9419.  
  9420.  
  9421.  
  9422.  
  9423.  
  9424.  
  9425.  
  9426.  
  9427.  
  9428.  
  9429.  
  9430.  
  9431.  
  9432.                                    -157-                                   
  9433.     9.14
  9434.     ----
  9435.    - Selecting display modes and then changing the mode in the display
  9436.      control panel caused the image to be scrambled
  9437.      
  9438.    - zoomclip ARexx command was not working if a previous region was
  9439.      not selected.
  9440.      
  9441.    - 'Unknown Internal error' messages replaced with meaningful
  9442.      messages
  9443.      
  9444.    - Exact image mode change was broken
  9445.  
  9446.  
  9447.  
  9448.  
  9449.  
  9450.  
  9451.  
  9452.  
  9453.  
  9454.  
  9455.  
  9456.  
  9457.  
  9458.  
  9459.  
  9460.  
  9461.  
  9462.  
  9463.  
  9464.  
  9465.  
  9466.  
  9467.  
  9468.  
  9469.  
  9470.  
  9471.  
  9472.  
  9473.  
  9474.  
  9475.  
  9476.  
  9477.  
  9478.  
  9479.  
  9480.  
  9481.  
  9482.  
  9483.  
  9484.  
  9485.  
  9486.  
  9487.  
  9488.  
  9489.  
  9490.  
  9491.                                    -158-                                   
  9492.     9.15
  9493.     ----
  9494.    + New Enhance anti-alias operation available in morph controls
  9495.    
  9496.    + Morph view creation now done faster and subsequent redrawing
  9497.      or partial redrawing is very fast.
  9498.      
  9499.    + New 'Grp Vel' button added to morph controls which lets the user
  9500.      draw an area on either morph frame and set the velocity of all
  9501.      enclosed points. Therefore, 'Set Point Vel' button has been changed to
  9502.      'Pnt Vel'.  After selection, the changed points are highlighted.
  9503.      
  9504.    + Multi-frame processes retain the altered current buffer until
  9505.      after the post-render script. This has a huge effect on the ability to
  9506.      perform operations in the post-render phase; our new single-frame
  9507.      controller scripts use this capability.
  9508.      
  9509.    + New Area selection option 'Numeric Rectangle' which takes keyboard
  9510.      typed coordinates for the rectangle edges.
  9511.      
  9512.    + New: IM has 'Dither' setting in display control, so dither can be
  9513.      turned off
  9514.      
  9515.    + New: 'CANCEL' ARexx command equivalent to hitting the cancel button
  9516.      for use within multi-frame sequences, kills the sequences immediately.
  9517.    
  9518.    + Further anti-piracy mods made (only) to IP for thieves who were
  9519.      using ASDG's AdPro to steal the entry codes.
  9520.      
  9521.    + IP panning in 256 color mode is now much faster.
  9522.  
  9523.  
  9524.  
  9525.  
  9526.  
  9527.  
  9528.  
  9529.  
  9530.  
  9531.  
  9532.  
  9533.  
  9534.  
  9535.  
  9536.  
  9537.  
  9538.  
  9539.  
  9540.  
  9541.  
  9542.  
  9543.  
  9544.  
  9545.  
  9546.  
  9547.  
  9548.  
  9549.  
  9550.                                    -159-                                   
  9551. Imagemaster 9.15 changes, continued
  9552. -----------------------------------
  9553.  
  9554.    + 'Shape Add' button in morph adds control points at the corners
  9555.       of an ISHAPE. It is used as follows :
  9556.   
  9557.       (1) When in morph hit the 'Shape Add' button.
  9558.       
  9559.       (2) Use the requestor to choose an ISHAPE or cancel to retain
  9560.           the current one.
  9561.           
  9562.           (new Ovals/polygons with 3 to 95 points/sides are supplied in the
  9563.           IShapes drawer.)
  9564.           
  9565.       (3) Click and drag with the left mouse button in either view
  9566.           area to size and position the shape over the feature you
  9567.           want.  Holding down the right mouse button at the same time
  9568.           will move the shape.
  9569.           
  9570.       (4) When you release the left mouse button, the shape will be 
  9571.           duplicated in the other view area.
  9572.           
  9573.           The shape has an orientation arrow shown on it.  
  9574.           Click with the left mouse button in this other view area and
  9575.           position it on the matching feature.
  9576.           
  9577.           Its orientation arrow will follow the cursor. You should
  9578.           (normally) make the arrow point the same way in each view, because
  9579.           Morph is going to use each corner in order.
  9580.           
  9581.       (5) When you release the left mouse button this time, morph control
  9582.           points will be placed at the corners of the shape.
  9583.  
  9584.    - IP (only) was confused when panning in exact image mode.
  9585.    
  9586.    - Morph one frame came out with bad display
  9587.  
  9588.  
  9589.  
  9590.  
  9591.  
  9592.  
  9593.  
  9594.  
  9595.  
  9596.  
  9597.  
  9598.  
  9599.  
  9600.  
  9601.  
  9602.  
  9603.  
  9604.  
  9605.  
  9606.  
  9607.  
  9608.  
  9609.                                    -160-                                   
  9610.     9.16
  9611.     ----
  9612.     + Button in Setup panel to switch MEMF_PUBLIC off, to help virtual
  9613.       memory managers.
  9614.  
  9615.     + In Morph 'Zoom' button, used as follows:
  9616.     
  9617.          . When in Morph press the Zoom button
  9618.          
  9619.          . Draw a rectangular area to zoom in to, on either
  9620.            the left or right frame.  Holding down the right mouse
  9621.            button while drawing will reposition the zoom rectangle.
  9622.            
  9623.          . Click on the Zoom button to undo the magnify.
  9624.          
  9625.       While in the zoomed state the arrow keys can be used to pan.
  9626.       
  9627.         The L key will isolate panning to the Left frame.
  9628.         The R key will isolate panning to the Right frame.
  9629.         The B key will allow panning to both frames.
  9630.         The < key will also reduce the amount of zoom 25%.
  9631.         The > key will increase the amount of zoom 25%.
  9632.  
  9633.     - The amount of image redrawn when moving a point in Morph is
  9634.       reduced.
  9635.  
  9636.     - In IP; Hi-Quality mode was switched off for Exact Image display.
  9637.       IP did not correctly draw in Exact Image / Hi-quality HAM-E
  9638.       mode.  If the HiQ switch-off was over-ridden, leaving exact 
  9639.       image mode could disturb entire image HiQ redraws. Fixed.
  9640.  
  9641.     - Panning large images (>640 wide) in Exact Image mode would not
  9642.       move all the way to the edge (IP & IM). Fixed.
  9643.     
  9644.  
  9645.  
  9646.  
  9647.  
  9648.  
  9649.  
  9650.  
  9651.  
  9652.  
  9653.  
  9654.  
  9655.  
  9656.  
  9657.  
  9658.  
  9659.  
  9660.  
  9661.  
  9662.  
  9663.  
  9664.  
  9665.  
  9666.  
  9667.  
  9668.                                    -161-                                   
  9669.     9.17
  9670.     ----
  9671.     + New morph engine; faster, (about 2 minutes per broadcast resolution
  9672.       frame) and more accurate.
  9673.     
  9674.     + ARexx command 'actpri' reports the preserved old primary buffer
  9675.       during a multi-frame sequence.
  9676.  
  9677.     + Display in morph panels is 4-8x faster
  9678.     
  9679.     + New "onionskin" capability in morph
  9680.     
  9681.     + New arbitrarily curved control vectors in morph
  9682.     
  9683.     + Main document updated to contain PI information, "pi.doc" obsolete
  9684.     
  9685.     + PI Modules to support PageStream (Soft Logik) "HotLinks"
  9686.     
  9687.     + Ability to abort when Imagemaster is drawing (if this leaves
  9688.       you with a partially drawn display, press "R" to redraw the
  9689.       image. A much requested addition!
  9690.  
  9691.     + IV24 Display PI Module - updated, portions re-written in assembler
  9692.       for considerable speed improvement; also an ARexx port was added to
  9693.       facilitate its use with single frame controller scripts.  One ARexx
  9694.       command is supported, "QUIT". The port address is 'IMIV24'. This
  9695.       allows you to display an image and then kill it as soon as the
  9696.       single frame controller has recorded it. See the macros
  9697.       "setframe.rexx" and "postiv.rexx" in RXPI:, these go in the first
  9698.       and third script positions for the sequencer and/or the morph
  9699.       scripts.  This script works with the BCD 2000A SF controller. Note
  9700.       that you must run the supplied (by BCD) BCDARexxHandler program for
  9701.       this script to work.
  9702.  
  9703.     + Informative vector display is not done while morphing with the
  9704.       film strip showing.
  9705.  
  9706.     + Morphing Velocity control now also affects transparency.
  9707.       Areas of the image will have different transparency depending on
  9708.       neighboring control points' velocity curves.
  9709.  
  9710.     + 'Warp Morph' from the Process/Special Effects panel.
  9711.  
  9712.     + 'Add Points','Move Points','Delete Points' in the morph panel are 
  9713.       now combined in one cycle gadget
  9714.  
  9715.     + Transparency can be set per control point, or group of control points
  9716.       New buttons in morph panel:
  9717.            * 'Pnt Trn' for setting the transparency curve of the 
  9718.              hilighted point.
  9719.            * 'Grp Trn' for setting the transparency curve of points
  9720.              identified by drawing a lassoo around the group.
  9721.  
  9722.                 <continued next page>
  9723.  
  9724.  
  9725.  
  9726.  
  9727.                                    -162-                                   
  9728.     9.17 changes, continued...
  9729.     --------------------------
  9730.     + 'Set Controls' option in morph now also has buttons
  9731.       for choosing from a list of transparency curves.  The default
  9732.       curves are <normal>, <late>, and <early>.
  9733.  
  9734.     - DMI Resolver Display PI Module- crashing bug fixed.
  9735.  
  9736.     - Bug with ANIM reader PI module fixed where loading a frame
  9737.       would nuke the previous frame
  9738.     
  9739.     - Bug with CBM/Khalid requesters not parsing paths correctly
  9740.       fixed.
  9741.  
  9742.  
  9743.  
  9744.  
  9745.  
  9746.  
  9747.  
  9748.  
  9749.  
  9750.  
  9751.  
  9752.  
  9753.  
  9754.  
  9755.  
  9756.  
  9757.  
  9758.  
  9759.  
  9760.  
  9761.  
  9762.  
  9763.  
  9764.  
  9765.  
  9766.  
  9767.  
  9768.  
  9769.  
  9770.  
  9771.  
  9772.  
  9773.  
  9774.  
  9775.  
  9776.  
  9777.  
  9778.  
  9779.  
  9780.  
  9781.  
  9782.  
  9783.  
  9784.  
  9785.  
  9786.                                    -163-                                   
  9787.     9.18
  9788.     ----
  9789.     + Smoother morphs generated overall
  9790.  
  9791.     + HotLinks (PageStream) support added in PI modules (This was supposed
  9792.       to happen in v9.17, but we mistakenly included the previous revision
  9793.       of the PI module archive - sorry)
  9794.  
  9795.         * Publish
  9796.         * Subscribe
  9797.         * Update
  9798.         * Info
  9799.  
  9800.     - Bug in morph where more-or-less random crashes occured for 9.17 fixed
  9801.     
  9802.     - Bug where using the up and down arrow keys in the onionskin display
  9803.       would result in a disturbance of the presentation (cosmetic only),
  9804.       fixed.
  9805.  
  9806.  
  9807.  
  9808.  
  9809.  
  9810.  
  9811.  
  9812.  
  9813.  
  9814.  
  9815.  
  9816.  
  9817.  
  9818.  
  9819.  
  9820.  
  9821.  
  9822.  
  9823.  
  9824.  
  9825.  
  9826.  
  9827.  
  9828.  
  9829.  
  9830.  
  9831.  
  9832.  
  9833.  
  9834.  
  9835.  
  9836.  
  9837.  
  9838.  
  9839.  
  9840.  
  9841.  
  9842.  
  9843.  
  9844.  
  9845.                                    -164-                                   
  9846.     9.19
  9847.     ----
  9848.     + Capability to handle motion morphing between two images added, with
  9849.       full intersticial tweening for the control points involved in the
  9850.       morph; any number of frames and/or key frames, any number of points,
  9851.       all options usable (velocity, transparency, arc vectors).
  9852.  
  9853.     + Transition Generator added to PI distribution; this capability provides
  9854.       literally thousands of possible 24-bit transisions between two images
  9855.       to be smoothly generated over any number of output frames.
  9856.  
  9857.     + Example.table added to PI distribution; should have been there all
  9858.       along, sorry. You'll find it in the CMPI: directory after installation.
  9859.       This is a sample table for use with the graph PI module.
  9860.  
  9861.     + New ARexx command, ASKRGB, added. Allows you to get a RGB value from the
  9862.       user of a macro or script using Imagemaster's standard color requester.
  9863.  
  9864.     - Bug where user transform interaction with UnDo didn't work properly
  9865.       fixed.
  9866.  
  9867.     - Bug in INSTALLER script which made RE-installs fail, although a new
  9868.       install would work fine, fixed.
  9869.     
  9870.     - Bug in INSTALLER script where re-installs of docs or developer docs
  9871.       would quietly fail, fixed.
  9872.  
  9873.     - Edge line prop gadget text was not put on the correct gadgets; fixed
  9874.  
  9875.  
  9876.  
  9877.  
  9878.  
  9879.  
  9880.  
  9881.  
  9882.  
  9883.  
  9884.  
  9885.  
  9886.  
  9887.  
  9888.  
  9889.  
  9890.  
  9891.  
  9892.  
  9893.  
  9894.  
  9895.  
  9896.  
  9897.  
  9898.  
  9899.  
  9900.  
  9901.  
  9902.  
  9903.  
  9904.                                    -165-                                   
  9905.     9.20
  9906.     ----
  9907.     + Morph now gets from edge instead of getting black; this makes morphs
  9908.       easier to do "nicely" if the subject material overlaps the edges.
  9909.  
  9910.     + 'Restrain Edge' switch in morph replaces 'Tack Down Edges' with points
  9911.        This has two benefits; not adding points for the edge means that the
  9912.        morph itself will run MUCH faster; and the entire edge is nailed
  9913.        down, not just some areas where there are points so edge tacking is
  9914.        essentially perfect - no bulges. You will find that the quality of
  9915.        morphing near the edge is much higher than it used to be; this is
  9916.        a combination of the effects of both Restrain Edge and getting from
  9917.        the edge instead of arbitrarily getting black.
  9918.  
  9919.     + DCTV images are now loaded using the new Digital Creations library
  9920.       instead of our internal loader. Digital Creations has kindly
  9921.       provided a complete solution to reading dctv images, a benefit for
  9922.       developers and users alike. Kudos to them for doing the right thing!
  9923.  
  9924.     + IFF register-mode, HAM-mode and HalfBright-mode images which have
  9925.       old EA-style palette info in them (12-bit) are now automatically
  9926.       caught and scaled for a fully corrected 24-bit palette. This improves
  9927.       instantaneous rendering of Amiga images with fewer colors than
  9928.       available in the current render mode. For complex images, no effect.
  9929.  
  9930.     - GIF loader will no longer consider images too large if they are
  9931.       correctly formatted.
  9932.  
  9933.     - Increasing the number of frames in morph would cause a freeing
  9934.       error when exiting the program. Fixed. From 9.19 only.
  9935.  
  9936.     - After moving, sizing or rotating points in morph, the points could be
  9937.       drawn off the view area. Fixed.
  9938.  
  9939.     - Bug in install from 9.19 where docs would not print from ICON fixed
  9940.     
  9941.     - Print-docs script has had the (silly) "send log to printer" option
  9942.       suppressed by the tricky use of a little known "feature" in the
  9943.       installer code. No more confusion about what is printing, where!
  9944.  
  9945.  
  9946.  
  9947.  
  9948.  
  9949.  
  9950.  
  9951.  
  9952.  
  9953.  
  9954.  
  9955.  
  9956.  
  9957.  
  9958.  
  9959.  
  9960.  
  9961.  
  9962.  
  9963.                                    -166-                                   
  9964. v9.21
  9965. -----
  9966.     + AA (AGA) chip set (Amiga 4000) 8 bit display modes
  9967.  
  9968.     * File I/O panel is laid out more clearly
  9969.  
  9970.     * Amiga mode and 'Other' modes are separated
  9971.  
  9972.     * 'Set Amiga Mode' covers all possible combinations - when
  9973.       a render combination is not displayable, it will be 
  9974.       rendered in Fast Ram and not visible.
  9975.  
  9976.     * 'Set Render Palette' panel is now the same for all render modes
  9977.       (but not available for DCTV renders).
  9978.  
  9979.     * 'Adjust Palette' for direct palette manipulation and 'Select
  9980.       Range' are available from the 'Set Render Palette' panel.
  9981.  
  9982.     * The 'Set Render Palette' panel does not come up automatically
  9983.       any more when a render mode is selected.
  9984.  
  9985.     * Number of colors and width and height are adjusted to
  9986.       standard sizes based on previous overscan settings when
  9987.       a new render mode is selected.
  9988.  
  9989.     * The Display Control panel on an AGA capable machine will
  9990.       show the new modes automatically.
  9991.  
  9992.     + HAM8 images can now be loaded as part of the main IFF loader
  9993.  
  9994.     * Amiga-mode renders have been improved, as have displayable, editable
  9995.       modes
  9996.  
  9997.     + Dither button in Display control has been replaced by a slider
  9998.       for dither amount (0 to 64); this provides user-controllable dither
  9999.       level in all display modes
  10000.  
  10001.     + New ARexx command for rendering Amiga modes (supports AGA)
  10002.  
  10003.       This uses a new method of parameter handling, which looks like this:
  10004.  
  10005.                     'amigarender [PARAM:value] ...'
  10006.  
  10007.       There are nine possible parameters, which may be in any order,
  10008.       and are all optional. If a parameter is ommitted, in each case, 
  10009.       the last setting is used, except COLORS which is set to the
  10010.       'normal' value for this mode and bit depth.
  10011.  
  10012.                     <9.21 changes continued next page>
  10013.  
  10014.  
  10015.  
  10016.  
  10017.  
  10018.  
  10019.  
  10020.  
  10021.  
  10022.                                    -167-                                   
  10023.  
  10024.       Parameter names for 'AmigaRender' can be abbreviated right down to
  10025.       one character.  Parameter values can be abbreviated as long as they
  10026.       remain non-ambiguous.  ON,OFF or 1,0 values may replace YES,NO.
  10027.       Case is not important.
  10028.  
  10029.       RES:xxx         LO,HI,SUPER                 Display resolution 
  10030.       PLANES:n        1 through 8                 Image Bit depth
  10031.       DEPTH:n         12 or 24                    Palette depth
  10032.       MODE:xxx        REG,HALFBRITE (or HB),HAM   Display mode
  10033.       LACE:xxx        YES or NO                   Display interlace
  10034.       WIDTH:nnnn                                  Render output width
  10035.       HEIGHT:nnnn                         Render output height
  10036.       USEPALETTE:xxx  YES or NO           Use existing palette
  10037.       NAME:ttttttt                        Output name (without path, extension)
  10038.       COLORS:nn       2 to 256            Number of colors to render with
  10039.  
  10040.       For example:
  10041.        'renderpath ram:'
  10042.        'renderext  .iff'
  10043.        'entire'
  10044.        'amigarender RES:hi MOD:reg PLANES:4 D:12 NAME:myimage'
  10045.        'finish'
  10046.     /*
  10047.      *  would render in high-res 16 color to the file  "ram:myimage.iff"
  10048.      *  from the sequencer.
  10049.      */
  10050.  
  10051.     ! The multi-frame processor would wait at the closing phase
  10052.  
  10053.     + 'Do 1 Frame' in Morph has a cancel button
  10054.  
  10055.     + Edges can be added to a morph
  10056.        ++ 'Edges' added to control cycle gadget
  10057.        ++ 'Show Edges' buttons added to normal and onion-skin view panels
  10058.        ++ Edges are loaded and saved with control point files.
  10059.        ++ Number of edges are shown on the morph screen
  10060.  
  10061.     + 'rectarea' ARexx command for rectangular area selection added
  10062.  
  10063.     + Morph output rippling completely eliminated; morph output quality
  10064.       improved in several major ways.
  10065.  
  10066.     + Adding points to a morph no longer incurs ANY time penalty. Users are
  10067.       now encouraged to add as many points as they feel are needed; the more
  10068.       points, the better controlled the morph will be.
  10069.  
  10070.     + Morph sequence scripts are now set in the 'Set Controls' panel
  10071.  
  10072.     + 'Del Grp' button added to main morph panel
  10073.  
  10074.     ! Group Velocity and Transparency operations in the morph panel
  10075.       while zoomed could draw off the view areas.
  10076.     
  10077.     + Accuracy of IShape placement is higher
  10078.  
  10079.  
  10080.  
  10081.                                    -168-                                   
  10082. v9.22
  10083. -----
  10084.    + Morph views draw during rendering with no vbar; part of changes for
  10085.      live, interactive drawing.
  10086.    
  10087.    + Morph views are interruptable - panning, zooming all stop the current
  10088.      drawing and restart in the new position, brite or contrast or zoom
  10089.      level.
  10090.    
  10091.    + Morph Grid can be added with edges
  10092.    
  10093.    + Morph Grid can be added into a rectangular or entire image
  10094.    
  10095.    + Morph ishapes can be added with edges
  10096.    
  10097.    + Edges move during a point move in Morph
  10098.    
  10099.    + OnionSkin display has zoom capability added
  10100.    
  10101.    + Zooming is now multi-level - images accept different zoom levels
  10102.    
  10103.    + Brightness and contrast added to morph interfaces
  10104.    
  10105.    + Overshoot capability added to velocity controls
  10106.    
  10107.    + Ability to reduce arc to vector and vector to point
  10108.    
  10109.    + Point sets are now mergable for group editing capability
  10110.    
  10111.    ! In 9.21, if user had selected quality HAM as default in AGA machine,
  10112.      Imagemaster would lock up when the display control panel was used.
  10113.      Fixed in 9.22
  10114.      
  10115.    ! In 9.21 Certain types of more complex morphs would result in regions
  10116.      which were left out of the morph. Fixed in 9.22
  10117.      
  10118.    ! Motion morph would crash with over 6 image pairs. Fixed in 9.22
  10119.  
  10120.  
  10121.  
  10122.  
  10123.  
  10124.  
  10125.  
  10126.  
  10127.  
  10128.  
  10129.  
  10130.  
  10131.  
  10132.  
  10133.  
  10134.  
  10135.  
  10136.  
  10137.  
  10138.  
  10139.  
  10140.                                    -169-                                   
  10141. v9.23
  10142. -----
  10143.  + 'newtargetted <xw> <yx> <name> [mask]' (ARexx)
  10144.    creates a new image buffer and prompts the user for its target
  10145.    ie. New as primary, Old as secondary, etc.
  10146.    Returns the buffer number.
  10147.  
  10148.  + Morph/Controls panel has 'FilmStrip Res' which sets the output
  10149.    resolution to film strip size (96 x 60)
  10150.    
  10151.  - Memory manager no longer reports on each and every failure to get
  10152.    memory
  10153.    
  10154.  + 'Do 1 Frame' morph option has a 'Preview' button which puts a
  10155.    single 320 x 200 morph image into the lower morph preview area.
  10156.  
  10157.  * Morph group operations are now under a 'Group Op' button
  10158.  
  10159.  + 'Demote Group' operation in Morph Group Ops
  10160.  
  10161.  + $VER identifier put into Imagemaster executable
  10162.  
  10163.  + 40-page Morph documentation rewrite to i_addendum
  10164.  
  10165.  
  10166.  
  10167.  
  10168.  
  10169.  
  10170.  
  10171.  
  10172.  
  10173.  
  10174.  
  10175.  
  10176.  
  10177.  
  10178.  
  10179.  
  10180.  
  10181.  
  10182.  
  10183.  
  10184.  
  10185.  
  10186.  
  10187.  
  10188.  
  10189.  
  10190.  
  10191.  
  10192.  
  10193.  
  10194.  
  10195.  
  10196.  
  10197.  
  10198.  
  10199.                                    -170-                                   
  10200. -----
  10201.  
  10202. + New ARexx command "userload filename" - UI targetted load.
  10203.   
  10204. + new ARexx command "simpload filename" - NON targetted load. Not pri,
  10205.   not sec, not anything but a free-floating buffer.
  10206.   
  10207. + New AGA ANIM creation/reading capabilities in ANIMWR scripts
  10208.   
  10209. + ARexx command "forcewbfront" (ignores autoactivate) added.
  10210.   
  10211. + ARexx command "forcefront" (ignores autoactivate) added.
  10212.   
  10213. + Changed 256-color working display to our preset colors
  10214.   
  10215. + Added TIFF PI Module Loader
  10216.   
  10217. + Added TIFF PI Module Saver 
  10218.   
  10219. + Added Poster Printer PI Module
  10220.   
  10221. + ARexx 'EHLP' command added. This command will return a text string
  10222.   when passed any integer number. The number should have been taken
  10223.   from the ARexx variable RC when RC is found to be non-zero after
  10224.   any of Imagemaster's ARexx commands have been used. A sample
  10225.   procedure is to be provided in the docs to show how to take the RC
  10226.   error, pass it to a little procedure and use that to report the
  10227.   error's text explanation to the user. This eliminates the user
  10228.   having to look up an error in the docs.
  10229.   
  10230. * When doing a morph preview, or a do 1 frame which is cancelled, the
  10231.   user will no longer be bothered by the request to save the points.
  10232.   Only when the do 1 frame will be exiting the panel will this occur.
  10233.   
  10234. * Amiga render default settings changed for optimum output
  10235.   
  10236. * Sequence processor no longer exits file i/o panel on way out
  10237.   
  10238. * Color Seps no longer exit file i/o panel on way out
  10239.   
  10240. * Interlace button is now in the modes panel, where it belongs.
  10241.   
  10242. * DCTV filter button is now in modes panel, where IT belongs. :
  10243.   
  10244. * Morph move/rotate moved to GROUP panel
  10245.   
  10246. * Morph move/scale moved to GROUP panel
  10247.   
  10248. ! In Arc Vectors, Show Singly button could get trampled.
  10249.   
  10250. ! Fixed ANIM Write to write correct AGA animations (OPT5)
  10251.   
  10252. ! Fixed ANIM Read to read correct AGA animations (OPT5)
  10253.  
  10254.  
  10255.  
  10256.  
  10257.  
  10258.                                    -171-                                   
  10259. ! When adding points via an IShape or Grid, the points were not
  10260.   internally known as having changed, and so you would not get
  10261.   prompted to save them with no other changes. This is fixed.
  10262.   
  10263. ! ARexx "save" (24bitIFF) command fixed. Finally! Sorry about this one...
  10264.   
  10265. - "Credits" removed - getting a little thick, it was (BW) :
  10266.   
  10267. - In motion WARP morph, "TO" frames should not have been available;
  10268.   
  10269. ! Variable transparency morphs incorrectly calculated transparency if
  10270.   velocity curves were involved.
  10271.   
  10272. ! ARexx commands 'zoom2' duped to 'clip2' and 'zoomhalf' duped to
  10273.  
  10274.   'cliphalf' to match manual.
  10275.   'clip2 [newCLIPname]'
  10276.   'cliphalf [newCLIPname]'
  10277.   
  10278. ! ARexx command 'macrodefs' added to match manual.
  10279.   Returns macro path and extension.    ie.    path, .extension
  10280.   
  10281. ! The following ARexx commands were duped to match the different spelling
  10282.   in the manual -
  10283.  
  10284.     'asterize'        to  'ast'
  10285.     'cellular'        to  'cell'
  10286.     'paletteext64'    to  'paleteext64'
  10287.     'pixelize'        to  'pix'
  10288.     'posterize'       to  'poster'
  10289.     'rubthrough'      to  'rubthru'
  10290.   
  10291. ! Scale to Size in render caused enforcer hits and sometimes crashing.
  10292.   
  10293. ! Adding a second set of morph points would corrupt or lose the previous
  10294.   edges.
  10295.   
  10296. ! Independant scrolling/zooming in the morph screen would be disturbed
  10297.   by 'Swap All'.
  10298.   
  10299. ! Rendering to horizontal widths less than 1/4 of the image width would
  10300.   sometimes fail.
  10301.   
  10302. ! Re-loaded morph point sets would not retain their arcs.
  10303.   
  10304. ! Memory was getting fragmented by VGad panels that re-used buttons.
  10305.   For example, the 'Done' buttons in the compose panels. Fixed.
  10306.   
  10307. ! Area of influence was being retained when a mask was loaded off disk.
  10308.   
  10309. * Vertical flip now also flips the local image mask if there is one.
  10310.   
  10311. ! Combine operation now pays attention to the image's local mask.
  10312.  
  10313.  
  10314.  
  10315.  
  10316.  
  10317.                                    -172-                                   
  10318. ! Intuiticks were taken out of all loops that run scripts.  All
  10319.   independant timers were replaced with a single global timer.
  10320.   
  10321. ! Enforcer hits occurred on panels that had offset buttons (such as
  10322.   the File I/O panel) when offset buttons were pressed. Fixed.
  10323.    
  10324. ! Place with Anti-alias was not able to create a drop shadow.
  10325.   
  10326. ! Exact image display mode did not save with the defaults.
  10327.   
  10328. ! Panning with images smaller than the display width would move
  10329.   the image to the bottom right of the display.
  10330.   
  10331. - Load buffer from DigiView button, operation and ARexx command removed.
  10332.   NewTek has been very poor on support, and we've given up on them.
  10333.   
  10334. ! GIF files wider than 2049 pixels would cause an alert.
  10335.   Size is now unlimited - and the GIF loader is smarter, too.
  10336.   
  10337. ! Paint redrew twice after a cancelled draw operation.
  10338.   
  10339. ! Point cellular left gaps at the edge of areas with 'cells at edge' off.
  10340.   
  10341. + Auto-activate now saves with the defaults.
  10342.   
  10343. ! GIF loader would not stop after encountering an unexpected EOF.
  10344.   
  10345. ! Paint area fill Redo did not remember the mask after a right mouse click
  10346.   finish.  
  10347.   
  10348. ! Rotate90 by 180 degrees caused enforcer hits.
  10349.   
  10350. ! Enforcer hit after cancelling 'set standard brush'.
  10351.   
  10352. ! ARexx command 'cdef' returned the color values of the area specified,
  10353.   but without commas separating the numbers.
  10354.   
  10355. ! Single color images did not show any XOR line drawing.
  10356.   
  10357. + Pad Canvas gives a notice if the new size is the same as the old size
  10358.   therefore providing NO room to actually PAD.
  10359.   
  10360. ! bbl was left unfreed after the multi-frame processor was used.
  10361.   
  10362. ! Enforcer hit in Process->Special Effects->melt.
  10363.   
  10364. ! The back up to the UNDO buffer did not copy the last (size%4) pixels.
  10365.   
  10366. ! Print area could over-run memory.
  10367.   
  10368. ! Done gadget used twice in Color Recombination causing auto-free.
  10369.   
  10370. ! Smooth edge transparency - entire image could cause enforcer hit.
  10371.  
  10372.  
  10373.  
  10374.  
  10375.  
  10376.                                    -173-                                   
  10377. + Radial Wave (ripple) now uses the image aspect ratio.
  10378.   
  10379. ! Poly-arc areas on large images were sometimes left unfilled.
  10380.    
  10381. ! Undo is now forced to redraw if entire/exact display mode has changed.
  10382.   (Undo operation sped up about 25%.)
  10383.   
  10384. *! Color separations changed according to recommendations from
  10385.    Customers:
  10386.   
  10387.      * GCR   is the amount of grey subtracted from CMY and replaced
  10388.              with black.  Gadget shows 0 to 100 %.
  10389.   
  10390.      * UCR   is the amount of color removed from heavily inked areas
  10391.              (where ink coverage approaches 300 %).
  10392.              The gadget represents the percentage 0 to 100% that this 
  10393.              removed color will be replaced by black.
  10394.   
  10395.      * UCR_Threshold
  10396.              The maximum ink coverage before UCR kicks in.
  10397.              The gadget shows 200 % to 400 %.
  10398.   
  10399.      * Pure Grey areas translate to black ink only.
  10400.   
  10401. + 'S' key swaps the primary and secondary buffers if both are assigned.
  10402.   
  10403. + New Compose->Special->Perspective Placement     operation
  10404.   
  10405.       Perspective placement will place the secondary image onto the
  10406.       primary using a 3-dimensional perspective projection.
  10407.       There are nine numeric controls:
  10408.       
  10409.         X Rotn - rotation about the X axis (pitch)   (in degrees)
  10410.         Y Rotn - rotation about the Y axis (yaw)
  10411.         Z Rotn - rotation about the Z axis (roll)
  10412.   
  10413.         X Translate - movement left and right
  10414.         Y Translate - movement up and down
  10415.         Z Translate - depth movement into the screen
  10416.   
  10417.         X Scale - horizontal stretching
  10418.         Y Scale - vertical stretching
  10419.         Z Scale - depth stretching
  10420.   
  10421.   Each of these controls has a Grab button so that the control can be 
  10422.   moved on screen using the mouse.
  10423.   
  10424.   X Scale and Y Scale together constitute the equivalent to 'zoom' on
  10425.   each axis. They are independant to allow aspect ratio distortions.
  10426.   
  10427.   Z Translate  brings the image closer to the 'camera' therefore making
  10428.   it bigger on screen.  Very close objects will show the distortion
  10429.   nomally seen through a wide angle lens.
  10430.   
  10431.   Z Scale (depth stretching) affects the degree of the perspective
  10432.   distortion. Setting Z Scale = 0 will produce orthographic projections.
  10433.  
  10434.  
  10435.                                    -174-                                   
  10436.   Anti-alias button defaults to on.
  10437.   
  10438.   Each of these controls has full floating point precision.
  10439.   
  10440.   It is recommended that the Imagemaster Default 'Lace Panel'
  10441.   be set for adjusting the perspective position.
  10442.   
  10443. + ARexx command:
  10444.          'perspect [Xrotn=N.n]  [Yrotn=N.n]  [Zrotn=N.n]
  10445.                    [Xtrans=N.n] [Ytrans=N.n] [Ztrans=N.n]
  10446.                    [Xscale=N.n] [Yscale=N.n] [Zscale=N.n]';
  10447.   
  10448.   Requires both a primary and secondary image. All parameters are 
  10449.   optional and may be in any order. The '=' may be replaced with ':'.
  10450.   Parameters that are ommitted will use the last setting. All
  10451.   parameter identifiers can be abbreviated down to 2 characters.
  10452.   For example, the following script will perform a tumble:
  10453.          / * ARexx Perspective tumble - (Trim the *'s from each line) * /
  10454.          address('IM_Port');
  10455.          'perspect Xr=330 Yr=0 Zr=0 Xt=405 Yt=-240 Zt=656 Xs=300 Ys=300 Zs=100';
  10456.          do i=1 to 10
  10457.            YR=i*36;
  10458.            XT=405-i*80;
  10459.            YT=-240+i*36;
  10460.            'perspect Yr='||YR||' Xt='||XT||' Yt='||YT;
  10461.            end
  10462.          'finish';
  10463.   
  10464. + New Process->Scientific Functions panel
  10465.   
  10466.      Add/Subtract a constant - Simply adds or subtracts a constant value
  10467.                                from each of red,green or blue.
  10468.   
  10469.      Multiply/Divide a constant - Simply multiplies or divides the r,g,b
  10470.                                levels by a constant.  This is effectively
  10471.                                a brightness operation.
  10472.   
  10473.      Multiply by Secondary -   Multiplies the primary image brightness
  10474.                                values by the secondary.
  10475.   
  10476.      Divide by Secondary -     Divides the primary by the secondary.
  10477.   
  10478.      Logarithm -               Takes the log base N of the primary.
  10479.   
  10480.      Raise to Power -          Raises primary image to a constant power.
  10481.   
  10482.      1-D Profile -             Draws a graph of the brightness levels
  10483.                                over a line.
  10484.   
  10485.      1-D Spectrum Analysis -   Does a spectrum analysis (power spectrum)
  10486.                                over a line.
  10487.   
  10488.      Variance Conversion -     Changes the primary image to a map of the
  10489.                                variance between each pixel and its
  10490.                                neighbors.  This is often a good measure
  10491.                                of high frequency noise.
  10492.  
  10493.  
  10494.                                    -175-                                   
  10495. NOTE!
  10496.   For each of the SCI functions, the Red, Green, and Blue channels are
  10497.   treated as Decimal values ranging from 0.000 to 1.000 with a precision of
  10498.   +/- 0.0019 .
  10499.   
  10500.   Each function uses a constant (N) for each channel (x).  The Monochrome
  10501.   button forces the constant to be the same for each of red, green and blue
  10502.   channels.
  10503.   
  10504.   Note, that the Inverse button causes the inverse functions to be used
  10505.   as follows:
  10506.               NORMAL                            INVERSE
  10507.               --------------                    ---------------
  10508.               + (add)                           - (subtract)
  10509.               * (multiply)                      / (divide)
  10510.               log base N of x                   N raised to x
  10511.               x raised to the N power           x raised to 1/N
  10512.   
  10513.   When multiplying or dividing by a negative number the result is folded into
  10514.   the positive domain according to the following formulae:
  10515.   
  10516.   For multiplication (Normal function):
  10517.   
  10518.       X' = | x * constant           when  constant >= 0.0
  10519.            | x * constant + 1.0     when  constant <  0.0
  10520.  
  10521.   For division (Inverse function):
  10522.   
  10523.          X' = | x / constant           when  constant >= 0.0
  10524.            | (x-1.0) / constant     when  constant <  0.0
  10525.  
  10526.   This ensures that the inverse function will always 'undo' the normal
  10527.   function.  As a general rule, the inverse should 'undo' the normal
  10528.   function to the limits of precision and domain.  For example,
  10529.   multiplication by 2 then division by 2 will produce a ceiling at 0.5
  10530.    
  10531.   Absurd mathematical requests (there are at least seven types), like log to
  10532.   a negative base or division by zero, are stopped and reported with a
  10533.   message.
  10534.   
  10535.   But we do allow them to destroy their image. That's their prerogative.
  10536.   After all,... there are an infinite number of ways to do it.  And... it
  10537.   might be destroyed in a meaningful way.
  10538.   
  10539.   1-D Profile graphs the Red, Green, Blue and average (as white) brightness
  10540.   levels along the graph.  The profile is sampled at one pixel intervals.
  10541.      
  10542.   1-D Spectrum Analysis does an FFT of the profile sampled at intervals of 1/
  10543.   1024 of the line length ( 1024 samples altogether).  Red shows the real (in
  10544.   phase) and blue the imaginary (out of phase) components.  The vertical
  10545.   minimum and maximum levels are shown above the graph.
  10546.  
  10547.  
  10548.  
  10549.  
  10550.  
  10551.  
  10552.  
  10553.                                    -176-                                   
  10554.   + Process->Filters->Sharpen III   a broader sharpening filter.  This works
  10555.   well on higher resolution images and can have a more dramatic effect than
  10556.   Sharpen I and Sharpen II.
  10557.   
  10558.   + Universal Loader.  Imagemaster now identifies image files that require
  10559.   external PI loaders and calls the appropriate loader.
  10560.   For this to work, functionality changes were made, as follows:
  10561.   
  10562.       + While a PI Loader is in operation, button presses on the main
  10563.         panel, and keyboard input are ignored, even though the load is
  10564.         actually asyncronous.
  10565.         Hitting the Exit button, however,  will re-awaken the gadgets.
  10566.         Processing of any script (except the PI loader) is halted until the
  10567.         loader completes.
  10568.         
  10569.         A PI loader MUST include a 'finish' command to work correctly.
  10570.         
  10571.       + External loaders will be called even if the ARexx 'load' command
  10572.         initiated the image load.
  10573.         
  10574.         [PROGRAMMERS:  Imagemaster keeps account of whether the loader was
  10575.                        initiated by the main panel or by an ARexx 'load'
  10576.                        command using the variable fromrexxdepth2.          ]
  10577.                        
  10578.       + Imagemaster always wakes up every 0.5 seconds (using a timer) but will
  10579.         not activate the main window if triggered by one of these timer events
  10580.         even if autoactivate is on.
  10581.   
  10582.       + If the image file was not recognised, a message will be displayed.
  10583.       
  10584.       + A loader's existence is checked before it is run.  If the loader is
  10585.         not found then a message will be displayed.
  10586.  
  10587.  
  10588.  
  10589.  
  10590.  
  10591.  
  10592.  
  10593.  
  10594.  
  10595.  
  10596.  
  10597.  
  10598.  
  10599.  
  10600.  
  10601.  
  10602.  
  10603.  
  10604.  
  10605.  
  10606.  
  10607.  
  10608.  
  10609.  
  10610.  
  10611.  
  10612.                                    -177-                                   
  10613.      Loaders done so far:
  10614.      (Internal)  IFF     Amiga 24-bit and standard IFF
  10615.                  HAME    Black Belt's high color images for the HAM-E
  10616.                  DCTV    Digital Creation's video like DCTV images
  10617.                  HAM     Amiga HAM
  10618.                  HLFBRT  Amiga 64 color half bright images
  10619.                  HICOLR  Amiga hi-color images
  10620.   
  10621.      (External)  TARGA
  10622.                  TIFF    All known Tag Image File Format
  10623.                  BMP     Windows and OS/2 bitmaps (DIB's)
  10624.                  RENDITION
  10625.                  SHAM    Amiga Sham
  10626.                  DHRZ
  10627.                  PMBC    Black Belt's lossless PMBC compressed images.
  10628.                  UPB8    Amiga (RegPaint) 256 color brushes
  10629.                  RGBN    
  10630.                  RGB8
  10631.                  PBM
  10632.                  GIF     Compuserve's Graphic Interchange Format
  10633.                  PCX     PC Paintbrush PCX
  10634.                  MFLM    WinImages:morph 24-bit FiLMstrip files
  10635.                  IRAW    I-raw graphics
  10636.                  ANIM    Amiga anim files
  10637.                  JPEG    JFIF/JPEG high compression images
  10638.                  NASA    Nasa/JPL images on CD
  10639.                  BMASTER Black Belt's Board Master circuit board layout
  10640.                  NBOOK   Black Belt's NoteBook files
  10641.                  FLICK   Autodesk Animator (Pro) FLC & FLI animations
  10642.                  HICOLR  AmigCON (Amiga .INFO) file
  10643.      
  10644.      Other loaders which can never be auto-identified:
  10645.                  RAW     Raw color files
  10646.                  GE_NMR  G.E.'s NMR scans
  10647.      They will have to be loaded manually.
  10648.   
  10649.      All the Rexx scripts for the external loaders have changed and some have
  10650.      also had changes to the executable (cmpi:) modules.
  10651.      
  10652.      (Between 9.23 and 9.50 the following PI modules were extended to handle
  10653.       more file sub-types:
  10654.       
  10655.         TARGA, PCX, TIFF, GIF, BMP, IRAW                                  )
  10656.   
  10657.      There are some files which have a measurable chance of being
  10658.      mis-identified:
  10659.                  PCX     1 in 256 raw files could be mis-identified as PCX
  10660.            some  TARGA   1 in 64  raw files could be mis-identified as TARGA
  10661.      I don't know of other formats which have fields at the appropriate
  10662.      places with ranges that would cause a mis-identification.  By checking
  10663.      the strongest ID formats first chances are minimized. For example, even
  10664.      though the PCX ID is contained inside the ICON (.INFO) ID, ICON files
  10665.      are checked first.
  10666.  
  10667.  
  10668.  
  10669.  
  10670.  
  10671.                                    -178-                                   
  10672. + The internal IFF loader will show a busy pointer during the pre-read.
  10673.   
  10674. ! The 8-bit HAM display did not get its palette restored during an
  10675.   undo.
  10676.   
  10677. + the 'plugin' Arexx command now returns an extended structure:
  10678.          struct plugin
  10679.            {
  10680.              struct jackinbuff *buffer;
  10681.              unsigned char id[4];   
  10682.              struct Screen *showscr;  / * IM's main gadget screen * /
  10683.              unsigned char pname[4];  / * IP\0\0 IM\0\0 of IMFC   * /
  10684.              long   ver;              / * (short)ver (short)rev   * /
  10685.            };
  10686.   
  10687. ! Motion morphing was broken in 9.23 - now its fixed.
  10688.   
  10689. ! Morph sequences would hold mid-way until a key was pressed.
  10690.   
  10691. ! The list memory was not freed from motion morph's file lists.
  10692.   
  10693. + The File Requester now uses the main gadget screen and has the
  10694.   AmigaDOS 2 look.
  10695.   
  10696. + The 'Lace Panel' option button has been moved from the Defaults
  10697.   panel to the Display Control panel.  If the setting is changed,
  10698.   the gadget panel is immediately replaced by one with the new mode.
  10699.   
  10700. + AGA machines have a NICE palette screen. New features are:
  10701.   
  10702.   HAM8 precise colors on screen
  10703.   
  10704.   AmigaDOS style
  10705.   
  10706.   Resizes for Hi-Res and Super72 display resolutions so it is friendly
  10707.   to Super72 800x600 mode
  10708.   
  10709.   Render flag for each register
  10710.       0 = GREY  = Normal
  10711.       1 = AQUA  = Usable but not changable by the renderer
  10712.       2 = BLACK = Skip / unusable
  10713.   These render flags are saved with each palette.
  10714.   
  10715.   Range is seen and selected on the palette screen
  10716.   
  10717.   Undo
  10718.   
  10719.   Color mixing area
  10720.   
  10721.   CMYK color space
  10722.  
  10723.  
  10724.  
  10725.  
  10726.  
  10727.  
  10728.  
  10729.  
  10730.                                    -179-                                   
  10731.   ! Sprites are replaced with cycling highlights. Sprites sometimes had
  10732.     problems on some AGA displays.
  10733.   
  10734. + New display mode 'Aspect Correct' and a panel from Display Control
  10735.   to set the Aspect Ratio of the current (or all) display resolutions.
  10736.   This is now the default mode for new IM installations.
  10737.   
  10738. ! Exact Image draws would leave  trailing lines from the side of the
  10739.   image.
  10740.   
  10741. ! HAM-8 draw mode drew a non-zero color around image in Exact Image
  10742.   display mode.
  10743.   
  10744. + New ARexx commands    'pcontrol' <register> <state>;
  10745.   
  10746.   This sets the render state for a register as per AGA palette screen.
  10747.       0 =  Normal
  10748.       1 =  Usable but not changable by the renderer
  10749.       2 =  Skip / unusable
  10750.   Palettes loaded and saved will contain the control information.
  10751.   
  10752.   and                   'pcontask' <register>;
  10753.   which returns the palette control flag value for that register.
  10754.  
  10755.  
  10756.  
  10757.  
  10758.  
  10759.  
  10760.  
  10761.  
  10762.  
  10763.  
  10764.  
  10765.  
  10766.  
  10767.  
  10768.  
  10769.  
  10770.  
  10771.  
  10772.  
  10773.  
  10774.  
  10775.  
  10776.  
  10777.  
  10778.  
  10779.  
  10780.  
  10781.  
  10782.  
  10783.  
  10784.  
  10785.  
  10786.  
  10787.  
  10788.  
  10789.                                    -180-                                   
  10790.     ) ............................................................. Page 171
  10791.     ). ............................................................ Page 172
  10792.     .ish .......................................................... Page  21
  10793.     absolute resample ............................................. Page  89
  10794.     actpri (ARexx) ................................................ Page 127
  10795.     addasb (ARexx) ................................................ Page 127
  10796.     addasc (ARexx) ................................................ Page 127
  10797.     addasg (ARexx) ................................................ Page 127
  10798.     addask (ARexx) ................................................ Page 128
  10799.     addasm (ARexx) ................................................ Page 127
  10800.     addasr (ARexx) ................................................ Page 127
  10801.     addasy (ARexx) ................................................ Page 128
  10802.     affects entire image, balancing ............................... Page  87
  10803.     allowcancel (ARexx) ........................................... Page 128
  10804.     AmigaRender (ARexx) ........................................... Page 126
  10805.     and, logical composition ...................................... Page  91
  10806.     angle, of shadows ............................................. Page  28
  10807.     angled range (fill mode) ...................................... Page 101
  10808.     ANIM OP-5 ..................................................... Page  22
  10809.     ANIM PI reader ................................................ Page 105
  10810.     animations .................................................... Page  22
  10811.     ARexx port name ............................................... Page 116
  10812.     ARexx simplification .......................................... Page  30
  10813.     Arguments, sequence processor ................................. Page  32
  10814.     ARZ0 PI reader ................................................ Page 105
  10815.     ARZ1 PI reader ................................................ Page 105
  10816.     askrgb (ARexx) ................................................ Page 118
  10817.     autoactivate (ARexx) .......................................... Page 120
  10818.     automatic update display modules .............................. Page  23
  10819.     autoprimary (ARexx) ........................................... Page 123
  10820.     B&W filmstrips ................................................ Page  29
  10821.     background color setting ...................................... Page  97
  10822.     backuptoundo (ARexx) .......................................... Page 120
  10823.     batch operations .............................................. Page  22
  10824.     BBS number .................................................... Page  21
  10825.     black balancing ............................................... Page  88
  10826.     Blend loading (ARexx) ......................................... Page  83
  10827.     blend type combinations ....................................... Page  91
  10828.     Board Master PI reader ........................................ Page 105
  10829.     brush brick emboss (fill mode) ................................ Page  98
  10830.     brush emboss (fill mode) ...................................... Page  98
  10831.     Brush loading (ARexx) ......................................... Page  83
  10832.     brushes, transparent .......................................... Page  96
  10833.     cancel (ARexx) ................................................ Page 125
  10834.     capture, PI ................................................... Page 113
  10835.     caric (ARexx) ................................................. Page 118
  10836.     centering images .............................................. Page  20
  10837.     changes list .................................................. Page 135
  10838.     Chekov forcing ................................................ Page  90
  10839.     clipping, exact size .......................................... Page  85
  10840.     CMAP type, color separations .................................. Page  93
  10841.     co-ordinates .................................................. Page  84
  10842.     color balancing ............................................... Page  87
  10843.     Color filmstrips .............................................. Page  29
  10844.     color keying, for genlocking .................................. Page  95
  10845.  
  10846.  
  10847.     color recombinations .......................................... Page  94
  10848.     color separations ............................................. Page  92
  10849.     color zero, in genlocking ..................................... Page  95
  10850.     color, setting new buffer to .................................. Page 101
  10851.     constant effects in sequences ................................. Page  32
  10852.     constant palette .............................................. Page  22
  10853.     coords (ARexx) ................................................ Page  84
  10854.     coords (ARexx) ................................................ Page 117
  10855.     coords (ARexx) ................................................ Page 120
  10856.     custom shapes ................................................. Page  21
  10857.     dctv .......................................................... Page  96
  10858.     DHRZ PI reader ................................................ Page 105
  10859.     Dilate PI Process ............................................. Page 112
  10860.     display updating (external), automatic ........................ Page  23
  10861.     display, PI ................................................... Page 113
  10862.     displaymode (ARexx) ........................................... Page 122
  10863.     distance calculator ........................................... Page  20
  10864.     dither, in display ............................................ Page 102
  10865.     dither, random ................................................ Page  85
  10866.     dithering (in output renders) ................................. Page  90
  10867.     DKB Trace PI reader ........................................... Page 105
  10868.     DMI Resolver PI Display ....................................... Page 113
  10869.     dome (ARexx) .................................................. Page 118
  10870.     DPI operations ................................................ Page 101
  10871.     dragging and co-ordinates ..................................... Page  84
  10872.     dual ranges (fill mode) ....................................... Page  99
  10873.     emboss (ARexx) ................................................ Page 128
  10874.     Erode PI Process .............................................. Page 112
  10875.     ES-300c PI Capture ............................................ Page 113
  10876.     exact size clipping ........................................... Page  85
  10877.     Fades ......................................................... Page 110
  10878.     fast ham draw mode ............................................ Page 101
  10879.     FC24 PI Display ............................................... Page 113
  10880.     FCHIDE (ARexx) ................................................ Page 116
  10881.     FCSHOW (ARexx) ................................................ Page 116
  10882.     filerequest (ARexx) ........................................... Page 116
  10883.     filmstrip ..................................................... Page  29
  10884.     finish (ARexx) ................................................ Page  31
  10885.     FITS reader ................................................... Page 106
  10886.     force dynamic ................................................. Page  88
  10887.     foreground color setting ...................................... Page  96
  10888.     format, user transform files .................................. Page  86
  10889.     fromdigiview (ARexx) .......................................... Page 117
  10890.     FR_CANCELLED .................................................. Page 116
  10891.     GCR (Grey Component Replacement) .............................. Page  92
  10892.     genlocking tools .............................................. Page  95
  10893.     Graph PI Process .............................................. Page 112
  10894.     grid (ARexx) .................................................. Page  84
  10895.     grid (ARexx) .................................................. Page 117
  10896.     grid (ARexx) .................................................. Page 120
  10897.     grid .......................................................... Page  84
  10898.     Hist PI Process ............................................... Page 109
  10899.     history, using the filmstrip .................................. Page  30
  10900.     HotLinks Info ................................................. Page 109
  10901.     Hotlinks Publish .............................................. Page 106
  10902.  
  10903.  
  10904.     HotLinks subscribe ............................................ Page 103
  10905.     HotLinks Update ............................................... Page 107
  10906.     IFF PI reader ................................................. Page 104
  10907.     image locking (ARexx) ......................................... Page 130
  10908.     image structures (ARexx) ...................................... Page 132
  10909.     imageaspect (ARexx) ........................................... Page 119
  10910.     imtofront ..................................................... Page 129
  10911.     info, about any buffer ........................................ Page 101
  10912.     Info, HotLinks ................................................ Page 109
  10913.     ink correction ................................................ Page  92
  10914.     install, pi modules ........................................... Page 102
  10915.     installation of PI modules .................................... Page 130
  10916.     intensity, of shadows ......................................... Page  28
  10917.     introduction .................................................. Page   1
  10918.     iptofront ..................................................... Page 129
  10919.     IV24 PI Display ............................................... Page 113
  10920.     JPEG PI reader ................................................ Page 104
  10921.     JPEG PI Writer ................................................ Page 107
  10922.     KOCH PI Process ............................................... Page 109
  10923.     library, DCTV ................................................. Page  96
  10924.     list requesters (ARexx) ....................................... Page  83
  10925.     lists, sequence ............................................... Page  31
  10926.     loadasblend (ARexx) ........................................... Page 128
  10927.     loadasbrush (ARexx) ........................................... Page 128
  10928.     loadasprimary (ARexx) ......................................... Page 128
  10929.     loadassecondary (ARexx) ....................................... Page 128
  10930.     loadimask (ARexx) ............................................. Page 119
  10931.     loadmask (ARexx) .............................................. Page 119
  10932.     local mask .................................................... Page  27
  10933.     locking images (ARexx) ........................................ Page 130
  10934.     logical composition, and ...................................... Page  91
  10935.     logical or, composition ....................................... Page  91
  10936.     map to range .................................................. Page  86
  10937.     mapping, palette .............................................. Page  97
  10938.     masks ......................................................... Page  27
  10939.     masks, saving ................................................. Page  91
  10940.     Memory, Virtual ............................................... Page  20
  10941.     merge, with render from range ................................. Page  89
  10942.     mouse position (ARexx) ........................................ Page 117
  10943.     names, ARexx port ............................................. Page 116
  10944.     NASA reader ................................................... Page 106
  10945.     new panels .................................................... Page  25
  10946.     newasprimary (ARexx) .......................................... Page 117
  10947.     newblend (ARexx) .............................................. Page 123
  10948.     newbrush (ARexx) .............................................. Page 123
  10949.     newbuf (ARexx) ................................................ Page 117
  10950.     newbuf command (ARexx) ........................................ Page 116
  10951.     newcurrent .................................................... Page 129
  10952.     newtargetted .................................................. Page 121
  10953.     noise, random ................................................. Page  85
  10954.     Numeric Area Select ........................................... Page  87
  10955.     octagons ...................................................... Page  21
  10956.     on-disk documentation ......................................... Page   1
  10957.     or, logical composition ....................................... Page  91
  10958.     pad canvas .................................................... Page  20
  10959.  
  10960.  
  10961.     paint settings, saving ........................................ Page  97
  10962.     pal (ARexx) ................................................... Page 122
  10963.     palette mapping ............................................... Page  97
  10964.     panel organization ............................................ Page  25
  10965.     PCX PI reader ................................................. Page 105
  10966.     pentagons ..................................................... Page  21
  10967.     PI code examples (C and ARexx) ................................ Page 133
  10968.     PI modules (ARexx) ............................................ Page 130
  10969.     pi modules, install ........................................... Page 102
  10970.     Platform PI Process ........................................... Page 112
  10971.     plugging in (ARexx) ........................................... Page 131
  10972.     PMBC PI reader ................................................ Page 104
  10973.     PMBC PI Writer ................................................ Page 108
  10974.     polyranges (fill mode) ........................................ Page  98
  10975.     process, PI ................................................... Page 109
  10976.     public interface (ARexx) ...................................... Page 130
  10977.     Public Memory ................................................. Page  20
  10978.     Publish, HotLinks ............................................. Page 106
  10979.     punch (ARexx) ................................................. Page 128
  10980.     RAW PI reader ................................................. Page 104
  10981.     RAW PI Writer ................................................. Page 108
  10982.     readers, PI ................................................... Page 103
  10983.     recombinations, color ......................................... Page  94
  10984.     rectarea (ARexx) .............................................. Page 129
  10985.     relative co-ordinates ......................................... Page  84
  10986.     render changes (ARexx) ........................................ Page 124
  10987.     render command parameters (ARexx) ............................. Page 116
  10988.     Render controls ............................................... Page  90
  10989.     Rendition Alpha PI reader ..................................... Page 104
  10990.     Rendition PI reader ........................................... Page 104
  10991.     Rendition PI Writer ........................................... Page 108
  10992.     resolution of separations ..................................... Page  92
  10993.     Resolver PI Display ........................................... Page 113
  10994.     respositioning shapes ......................................... Page  21
  10995.     RGB8 PI Writer ................................................ Page 109
  10996.     RGB8 reader ................................................... Page 105
  10997.     RGBN reader ................................................... Page 105
  10998.     roll modes .................................................... Page  24
  10999.     rollimage (ARexx) ............................................. Page  24
  11000.     rolling ....................................................... Page  24
  11001.     saveimask (ARexx) ............................................. Page 119
  11002.     savemask (ARexx) .............................................. Page 119
  11003.     savers, PI .................................................... Page 106
  11004.     scale ......................................................... Page  86
  11005.     scripts, sequencer ............................................ Page  22
  11006.     Secondary loading (ARexx) ..................................... Page  83
  11007.     sequence lists ................................................ Page  31
  11008.     sequence processor ............................................ Page  30
  11009.     sequencer scripts ............................................. Page  22
  11010.     setpalette (ARexx) ............................................ Page 121
  11011.     Shadows ....................................................... Page  28
  11012.     SHAM PI reader ................................................ Page 105
  11013.     shapes ........................................................ Page  21
  11014.     smooth edge blending .......................................... Page  91
  11015.     smooth range, in polyrange fills .............................. Page  98
  11016.  
  11017.  
  11018.     soft edges, on shadows ........................................ Page  28
  11019.     stars ......................................................... Page  21
  11020.     stretch ....................................................... Page  86
  11021.     structures, image (ARexx) ..................................... Page 132
  11022.     subscribe, HotLinks ........................................... Page 103
  11023.     Targa PI reader ............................................... Page 105
  11024.     Targa PI Writer ............................................... Page 109
  11025.     tech support line ............................................. Page 130
  11026.     Tesselate PI Process .......................................... Page 112
  11027.     tofront ....................................................... Page 129
  11028.     transforms, user .............................................. Page  86
  11029.     Transition Generator .......................................... Page 110
  11030.     transparency, in genlocking ................................... Page  95
  11031.     transparent brushes ........................................... Page  96
  11032.     triangles ..................................................... Page  21
  11033.     tween command in sequencing ................................... Page  32
  11034.     UCR (Under Color Removal) ..................................... Page  92
  11035.     undo in ARexx ................................................. Page 120
  11036.     unlocking images .............................................. Page 131
  11037.     unplug ........................................................ Page 131
  11038.     UPB8 reader ................................................... Page 106
  11039.     Update, HotLinks .............................................. Page 107
  11040.     user transforms ............................................... Page  86
  11041.     variable effects in sequences ................................. Page  32
  11042.     version ....................................................... Page 129
  11043.     Virtual Memory ................................................ Page  20
  11044.     virtual resizing of masks ..................................... Page  27
  11045.     Vista Pro Binary PI Writer .................................... Page 108
  11046.     wbtofront ..................................................... Page 129
  11047.     wheremouse (ARexx) ............................................ Page 117
  11048.     whiten ........................................................ Page 129
  11049.     Wipes ......................................................... Page 110
  11050.     writers, PI ................................................... Page 106
  11051.     x-specs ....................................................... Page  85
  11052.     x-specs conversions ........................................... Page  88
  11053.     zoom .......................................................... Page  26
  11054.     zoomclip (ARexx) .............................................. Page  26
  11055.     zooming, by scaling ........................................... Page  86
  11056.  
  11057.